01 裝作自己是個小白--初識MySQL
1.1 MySQL 的用戶端/ 伺服器架構
1.2 MySQL 的安裝
1.3 啟動MySQL 伺服器程式
1.4 啟動MySQL 用戶端程式
1.5 用戶端與伺服器連接的過程
1.6 伺服器處理用戶端請求
1.7 常用儲存引擎
1.8 關於儲存引擎的一些操作
1.9 複習
02 MySQL 的調控按鈕--啟動選項和系統變數
2.1 啟動選項和設定檔
2.2 系統變數
2.3 狀態變數
2.4 複習
03 字元集和比較規則
3.1 字元集和比較規則簡介
3.2 MySQL 中支援的字元集和比較規則
3.3 字元集和比較規則的應用
3.4 複習
04 從一筆記錄說起-- InnoDB記錄儲存結構
4.1 準備工作
4.2 InnoDB 頁簡介
4.3 InnoDB 行格式
4.4 複習
05 盛放記錄的大盒子--InnoDB 資料頁結構
5.1 不同類型的頁簡介
5.2 資料頁結構快覽
5.3 記錄在頁中的儲存
5.4 Page Directory(頁目錄)
5.5 Page Header(頁面表頭)
5.6 File Header(檔案表頭)
5.7 File Trailer(檔案結尾)
5.8 複習
06 快速查詢的秘笈--B+ 樹索引
6.1 沒有索引時進行尋找
6.2 索引
6.3 複習
07 B+ 樹索引的使用
7.1 B+ 樹索引示意圖的簡化
7.2 索引的代價
7.3 應用B+ 樹索引
7.4 回表的代價
7.5 更進一步地創建和使用索引
7.6 複習
08 資料的家-- MySQL 的資料目錄
8.1 資料庫和檔案系統的關係
8.2 MySQL 資料目錄
8.3 資料目錄的結構
8.4 檔案系統對資料庫的影響
8.5 MySQL 系統資料庫簡介
8.6 複習
09 存放頁面的大池子--InnoDB 的表格空間
9.1 回憶一些舊知識
9.2 獨立表格空間結構
9.3 系統表格空間
9.4 複習
10 條條大路通羅馬--單表存取方法
10.1 存取方法的概念
10.2 const
10.3 ref
10.4 ref_or_null
10.5 range
10.6 index
10.7 all
10.8 注意事項
11 兩個表的親密接觸--連接的原理
11.1 連接簡介
11.2 連接的原理
11.3 複習
12 誰最便宜就選誰--基於成本的最佳化
12.1 什麼是成本
12.2 單表查詢的成本
12.3 連接查詢的成本
12.4 調節成本常數
12.5 複習
13 兵馬未動,糧草先行--InnoDB 統計資料是如何收集的
13.1 統計資料的儲存方式
13.2 基於磁碟的永久性統計資料
13.3 基於記憶體的非永久性統計資料
13.4 innodb_stats_method 的使用
13.5 複習
14 基於規則的最佳化(內含子查詢最佳化二三事)
14.1 條件化簡
14.2 外連接消除
14.3 子查詢最佳化
14.4 複習
15 查詢最佳化的百科全書--EXPLAIN 詳解
15.1 執行計畫輸出中各列詳解
15.2 JSON 格式的執行計畫
15.3 Extented EXPLAIN
15.4 複習
16 神兵利器-- optimizer trace的神奇功效
16.1 optimizer trace 簡介
16.2 透過optimizer trace 分析查詢最佳化工具的具體工作過程
17 調節磁碟和CPU 的矛盾--InnoDB 的Buffer Pool
17.1 快取的重要性
17.2 InnoDB 的Buffer Pool
17.3 複習
18 從貓爺借錢說起-- 交易簡介
18.1 交易的起源
18.2 交易的概念
18.3 MySQL 中交易的語法
18.4 複習
19 說過的話就一定要做到--redo 記錄檔
19.1 事先說明
19.2 redo 記錄檔是什麼
19.3 redo 記錄檔格式
19.4 Mini-Transaction
19.5 redo 記錄檔的寫入過程
19.6 redo 記錄檔
19.7 log sequence number
19.8 checkpoint
19.9 使用者執行緒批次從flush鏈結串列中刷出髒頁
19.10 查看系統中的各種lsn 值
19.11 innodb_flush_log_at_trx_
19.12 崩潰恢復
19.13 遺漏的問題:LOG_BLOCK_HDR_NO 是如何計算的
19.14 複習
20 後悔了怎麼辦-- undo記錄檔
20.1 交易復原的需求
20.2 交易id
20.3 undo 記錄檔的格式
20.4 通用鏈結串列結構
20.5 FIL_PAGE_UNDO_LOG頁面
20.6 Undo 頁面鏈結串列
20.7 undo 記錄檔具體寫入過程
20.8 重用Undo 頁面
20.9 回覆段
20.10 回覆段相關設定
20.11 undo 記錄檔在崩潰恢復時的作用
20.12 複習
21 一筆記錄的多副面孔--交易隔離等級和MVCC
21.1 事前準備
21.2 交易隔離等級
21.3 MVCC 原理
21.4 關於purge
21.5 複習
22 工作面試老大難-- 鎖
22.1 解決併發交易帶來問題的兩種基本方式
22.2 多粒度鎖
22.3 MySQL 中的行鎖和表鎖
22.4 敘述加鎖分析
22.5 查看交易加鎖情況
22.6 鎖死
22.7 複習
A 參考資料