課程導(dǎo)讀
本系列是 MySQL 系列教程之一,源自一線資深 DBA 多年的實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié)和 MySQL 數(shù)據(jù)庫的使用心得,基于 MySQL 官方版本,本系列共分為 《MySQL 入門教程》、以及《MySQL 進(jìn)階教程》兩門教程,本教程是《MySQL 進(jìn)階教程》。下面我們來看下這兩門教程的不同之處:
-
MySQL 入門教程主要面向 MySQL 的初學(xué)者,介紹了 MySQL 的發(fā)展史、MySQL 的安裝與配置、MySQL 的基礎(chǔ)維護(hù)、MySQL 支持的數(shù)據(jù)類型、SQL 基礎(chǔ)、常用函數(shù)等內(nèi)容。如果你對 MySQL 基礎(chǔ)掌握的不是很牢固的話建議你先去學(xué)習(xí)基礎(chǔ)課程之后再來學(xué)習(xí)這門進(jìn)階教程。
-
而這門進(jìn)階教程主要面向 MySQL 的 DBA 和開發(fā)人員,內(nèi)容包括 MySQL 架構(gòu)組成、MySQL 存儲(chǔ)引擎、索引、鎖、MySQL 事務(wù)、備份與恢復(fù)、MySQL 復(fù)制、高可用架構(gòu)、監(jiān)控、優(yōu)化等內(nèi)容。
本教程內(nèi)容實(shí)用豐富,通俗易懂,講解由淺入深,還結(jié)合大量來自一線的工作案例,擁有較高的實(shí)戰(zhàn)性和可操作性。本教程適合 MySQL 初學(xué)者、數(shù)據(jù)庫管理人員、數(shù)據(jù)庫開發(fā)人員及其他數(shù)據(jù)庫從業(yè)人員閱讀,同時(shí)也適合作為相關(guān)數(shù)據(jù)庫培訓(xùn)機(jī)構(gòu)的教材。
1. 課程設(shè)計(jì)
本課程采用理論加實(shí)踐的方式編寫,以 MySQL 架構(gòu)組成、存儲(chǔ)引擎、索引、事務(wù)等數(shù)據(jù)庫高頻知識點(diǎn)為主線,從這些知識點(diǎn)的概念、機(jī)制、原理,再加上來自一線 DBA 的實(shí)踐經(jīng)驗(yàn),讓讀者可以從點(diǎn)到線,到面,形成 MySQL 的知識網(wǎng)絡(luò)。
2. 課程目錄
本課程共 10 章 30 小節(jié),具體章節(jié)安排如下:
- MySQL 的架構(gòu)組成:本章節(jié)從 MySQL 的邏輯架構(gòu)講起,到 MySQL 的物理組成。通過本章節(jié)的學(xué)習(xí)你會(huì)對 MySQL 的底層邏輯架構(gòu)有一個(gè)比較清楚的認(rèn)知,也會(huì)了解到 MySQL 的底層是如何具體的執(zhí)行一條 SQL 語句的;
- MySQL 的存儲(chǔ)引擎:MySQL 中包含了很多中存儲(chǔ)引擎,每一種存儲(chǔ)引擎所支持的機(jī)制也不盡相同。這一章節(jié)會(huì)對 MySQL 的各種存儲(chǔ)引擎以及它們之間的差別做出詳細(xì)講解,并通過實(shí)際案例的講解讓你知道該如何去選擇存儲(chǔ)引擎;
- MySQL 的索引:索引的目的是提高 MySQL 的查詢效率,設(shè)計(jì)優(yōu)秀的索引可以大大提高 MySQL 的執(zhí)行效率,在這一章節(jié)我們會(huì)對常見的索引模型,以及回表、覆蓋索引、最左前綴原則等等索引細(xì)節(jié)進(jìn)行講解,并通過實(shí)際案例來教你根據(jù)實(shí)際業(yè)務(wù)合理的設(shè)計(jì)索引;
- MySQL 的事務(wù):事務(wù)的重要性我想已經(jīng)不言而喻了,你說你會(huì) MySQL ,但別人問你事務(wù)你卻支支吾吾的,別人也不會(huì)相信啊。別著急,本章節(jié)我們會(huì)對 MySQL 的事務(wù)進(jìn)行詳細(xì)講解,讓你知道 MySQL 為什么需要事務(wù),以及事務(wù)是如何開啟的?事務(wù)的隔離方式是什么?讓你在和別人聊起事務(wù)的時(shí)候言之有物;
- MySQL 的鎖:當(dāng)多個(gè)事務(wù)或者進(jìn)程同時(shí)訪問一個(gè)相同的資源時(shí),為了保證數(shù)據(jù)的一致性,就需要用到 MySQL 的鎖機(jī)制。MySQL 把鎖分為了三個(gè)層級,分別是:全局鎖,表鎖,行鎖。這一章節(jié)我們會(huì)對這三種鎖進(jìn)行剖析,你會(huì)知道這三種鎖的機(jī)制和它們之間的差別以及在不同的存儲(chǔ)引擎下使用鎖的不同;
- MySQL 的備份與恢復(fù):在當(dāng)下這個(gè)數(shù)據(jù)為王的時(shí)代,數(shù)據(jù)備份和恢復(fù)應(yīng)該是每一個(gè)公司業(yè)務(wù)的重中之重,數(shù)據(jù)備份和恢復(fù)是每一位工程師都應(yīng)該了解或掌握的技術(shù)。本章節(jié)我們會(huì)詳細(xì)講解 MySQL 的備份和恢復(fù)機(jī)制,并通過實(shí)際案例教你如何合理的設(shè)計(jì)備份與恢復(fù)的策略;
- MySQL 的主從復(fù)制:MySQL 的主從復(fù)制指的是數(shù)據(jù)可以從一個(gè) MySQL 數(shù)據(jù)庫服務(wù)器主節(jié)點(diǎn)復(fù)制到一個(gè)或多個(gè)從節(jié)點(diǎn),之所以這么設(shè)計(jì)是因?yàn)椋涸趯?shí)際開發(fā)中如果因?yàn)槟骋徊僮髟斐蓴?shù)據(jù)被鎖,無法進(jìn)行數(shù)據(jù)讀取那么就會(huì)造成業(yè)務(wù)服務(wù)中斷,這是很嚴(yán)重的事故。使用主從復(fù)制,讓主庫負(fù)責(zé)寫,從庫負(fù)責(zé)讀,涇渭分明的操作就能保證及時(shí)主庫被鎖表,也不會(huì)出現(xiàn)數(shù)據(jù)無法讀取的情況。本章節(jié)我們就會(huì)學(xué)習(xí) MySQL 的主從復(fù)制技術(shù);
- MySQL 的監(jiān)控:這一章節(jié)我們會(huì)講解 MySQL 的基礎(chǔ)監(jiān)控機(jī)制,性能監(jiān)控機(jī)制。并介紹兩個(gè)開源的監(jiān)控工具:Zabbix 和 PMM;
- MySQL 的高可用:高可用是每一個(gè)應(yīng)用都應(yīng)該追求的目標(biāo),自然 MySQL 也不例外。本章節(jié)我們會(huì)介紹 MySQL 常見的高可用架構(gòu),并通過實(shí)際案例來演練如何進(jìn)行高可用架構(gòu)的選型;
- MySQL 的優(yōu)化:MySQL 的優(yōu)化是一個(gè)老生常談的話題了,而且面試的時(shí)候也一定會(huì)問。MySQL 的優(yōu)化大致分為兩個(gè)部分:MySQL Server 的優(yōu)化和 SQL 語句的優(yōu)化。這一章節(jié)我們會(huì)揭開“優(yōu)化”的神秘面紗,讓它不再這么高大上;
- MySQL 異常診斷:作為一個(gè)合格的 DBA 工程師,我們要像醫(yī)生對人體的了解一樣去了解 MySQL,更應(yīng)該及時(shí)的發(fā)現(xiàn) MySQL 的“病痛”,準(zhǔn)確的定位“病灶”的位置,合理的使用“藥物”來讓 MySQL 痊愈。這一章我們會(huì)通過實(shí)際案例對 MySQL 的異常發(fā)現(xiàn)、定位、解決這一流程進(jìn)行復(fù)刻,讓你成為合格的 “MySQL 外科醫(yī)生”。
3. 學(xué)習(xí)建議
每天抽 1-2 個(gè)小時(shí)學(xué)習(xí),每周學(xué)習(xí)五小節(jié)課程,大概六周可以完成本課程的學(xué)習(xí)。
每節(jié)課程都有相關(guān)的實(shí)操練習(xí),建議親自搭建實(shí)驗(yàn)環(huán)境并完成練習(xí),加深對知識點(diǎn)的理解。
4. 課程獲益
通過這門課程的學(xué)習(xí)你將收獲:
- 掌握 MySQL 的底層運(yùn)行機(jī)制;
- 掌握 MySQL 的一般優(yōu)化思路;
- 認(rèn)識 MySQL 的架構(gòu)、存儲(chǔ)引擎、事務(wù)、索引等知識點(diǎn),并掌握其原理;
- 掌握貼近企業(yè)生產(chǎn)使用的 MySQL 技能,提升工作和面試的競爭力。