內容簡介
《MySQL技術內幕:InnoDB存儲引擎》是國內目前唯一的一本關於InnoDB的著作,由資深MySQL專家親自執筆,中外資料庫專家聯袂推薦,權威性毋庸置疑。內容深入,從原始碼的角度深度解析了InnoDB的體系結構、實現原理、工作機制,並給出了大量最佳實踐,能幫助你系統而深入地掌握InnoDB,更重要的是,它能為你設計和管理高性能、高可用的資料庫系統提供絕佳的指導。注重實戰,全書輔有大量的案例,可操作性極強。全書首先全景式地介紹了MySQL獨有的外掛程式式存儲引擎,分析了MySQL的各種存儲引擎的優勢和套用環境。接著以InnoDB的內部實現為切入點,逐一詳細講解了InnoDB存儲引擎內部的各個功能模組,包括InnoDB存儲引擎的體系結構、記憶體中的數據結構、基於InnoDB存儲引擎的表和頁的物理存儲、索引與算法、檔案、鎖、事務、備份,以及InnoDB的性能調優等重要的知識,最後深入解析了InnoDB存儲引擎的原始碼結構,對大家閱讀和理解InnoDB的原始碼有重要的指導意義。《MySQL技術內幕:InnoDB存儲引擎》適合所有希望構建和管理高性能、高可用性的MySQL資料庫系統的開發者和DBA閱讀。
目錄
推薦序
前言
致謝
第1章 mysql體系結構和存儲引擎
1.1 定義資料庫和實例
1.2.mysql體系結構
1.3 mysql表存儲引擎
1.3.1 innodb存儲引擎
1.3.2 mylsam存儲引擎,
1.3.3 ndb存儲引擎
1.3.4 memory存儲引擎
1.3.5 archive存儲引擎
1.3.6 federated存儲引擎
1.3.7 maria存儲引擎
1.3.8其他存儲引擎
1.4 各種存儲引擎之間的比較
1.5 連線mysql
1.5.1 tcp/ip
1.5.2命名管道和共享記憶體
1.5.3 unix域套接宇
.1.6 小結
第2章 innodb存儲引擎
2.1.innodb存儲引擎概述
2.2 innodb體系架構
2.2.1後台執行緒
2.2.2記憶體
2.3 masteithread
2.3.1 masterthread源碼分析
2.3.2 masterthread的潛在問題
2.4 關鍵特性
2.4.1插入緩衝
2.4.2兩次寫
2.4.3自適應哈希索引
2.5 啟動、關閉與恢復
2.6 innodbplugin:新版本的innodb存儲
引擎
2.7 小結
第3章 檔案
3.1 參數檔案
3.1.1什麼是參數
3.1.2參數類型
3.2 日誌檔案
3.2.1錯誤日誌
3.2.2慢查詢日誌
3.2.3查詢日誌
3.2.4二進制日誌
3.3 套接字檔案
3.4 pid檔案
3.5 表結構定義檔案
3.6 innodb存儲引擎檔案
3.6.1表空間檔案
3.6.2重做日誌檔案
3.7 小結
第4章 表
4.1 innodb存儲引擎表類型
4.2 innodb邏輯存儲結構
4.2.1表空間
4.2.2段
4.2.3區
4.2.4頁
4.2.5行
4.3 innodb物理存儲結構
4.4 innodb行記錄格式
4.4.1 compact行記錄格式
4.4.2 redundant行記錄格式
4.4.3行溢出數據
4.4.4 compressed與dynamic行記錄格式
4.4.5 char的行結構存儲
4.5 innodb數據頁結構
4.5.1 fileheader
4.5.2 pageheader
4.5.3 infimum和supremum記錄
4.5.4 userrecords與freespace
4.5.5 pagedirectory
4.5.6 filenailei
4.5.7 innodb數據頁結構示例分析
4.6 namedfileformats
4.7 約束
4.7.1數據完整性
4.7.2約束的創建和查找
4.7.3約束和索引的區別
4.7.4對於錯誤數據的約束
4.7.5 enum和set約束
4.7.6觸發器與約束
4.7.7外鍵
4.8 視圖
4.8.1視圖的作用
4.8.2物化視圖
4.9 分區表
4.9.1分區概述
4.9.2 range分區
4.9.3 list分區
4.9.4 hash分區
4.9.6 columns分區
4.9.7子分區
4.9.8分區中的null值
4.9.9分區和性能
4.10 小結
第5章 索引與算法
5.1 innodb存儲引擎索引概述
5.2 二分查找法
5.3 平衡二叉樹
5.4 b+樹
5.4.1 b+樹的插入操作
5.4.2 b+樹的刪除操作
5.5 b+樹索引
5.5.1聚集索引
5.5.2輔助索引
5.5.3 b+樹索引的管理
5.6 b+樹索引的使用
5.6.1什麼時候使用b+樹索引
5.6.2順序讀、隨機讀與預讀取
5.6.3輔助索引的最佳化使用
5.6.4聯合索引
5.7 哈希算法
5.7.1哈希表
5.7.2 innodb存儲引擎中的哈希算法
5.7.3自適應哈希索引
5.8 小結
第6章 鎖
6.1 什麼是鎖
6.2 innodb存儲引擎中的鎖
6.2.1鎖的類型
6.2.2一致性的非鎖定讀操作
6.2.3 selectforupdp/te&selectlockinsharemode
6.2.4自增長和鎖
6.2.5外鍵和鎖
6.3 鎖的算法
6.4 鎖問題
6.4.1丟失更新
6.4.2髒讀
6.4.3不可重複讀
6.5 阻塞
6.6 死鎖
6.7 鎖升級
6.8 小結
第7章 事務
7.1 事務概述
7.2 事務的實現
7.2.1 redo
7.2.2 undo
7.3 事務控制語句
7.4 隱式提交的sql語句
7.5 對於事務操作的統計
7.6 事務的隔離級別
7.7 分散式事務
7.8 不好的事務習慣
7.8.1在循環中提交
7.8.2使用自動提交
7.8.3使用自動回滾
7.9 小結
第8章 備份與恢復
第9章 性能調優
第10章 innodb存儲引擎原始碼的編譯