作者:姜承堯
圖書分類:軟體
資源格式:PDF
版本:掃描版
出版社:機械工業出版社
書號:9787111321880
發行時間:2011年01月01日
地區:大陸
語言:簡體中文
內容簡介
本書是國內目前唯一的一本關於innodb的著作,由資深mysql專家親自執筆,中外資料庫專家聯袂推薦,權威性毋庸置疑。內容深入,從原始碼的角度深度解析了innodb的體系結構、實現原理、工作機制,並給出了大量最佳實踐,能幫助你系統而深入地掌握innodb,更重要的是,它能為你設計和管理高性能、高可用的資料庫系統提供絕佳的指導。注重實戰,全書輔有大量的案例,可操作性極強。
全書首先全景式地介紹了mysql獨有的外掛程式式存儲引擎,分析了mysql的各種存儲引擎的優勢和套用環境;接著以innodb的內部實現為切入點,逐一詳細講解了 innodb存儲引擎內部的各個功能模組,包括innodb存儲引擎的體系結構、記憶體中的數據結構、基於innodb存儲引擎的表和頁的物理存儲、索引與算法、檔案、鎖、事務、備份,以及innodb的性能調優等重要的知識;最後深入解析了innodb存儲引擎的原始碼結構,對大家閱讀和理解innodb 的原始碼有重要的指導意義。
本書適合所有希望構建和管理高性能、高可用性的mysql資料庫系統的開發者和dba閱讀。
目錄:
推薦序前言
致謝
第1章 mysql體系結構和存儲引擎
1.1 定義資料庫和實例
1.2 mysql體系結構
1.3 mysql表存儲引擎
1.3.1 innodb存儲引擎
1.3.2 myisam存儲引擎
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 master thread
2.3.1 master thread源碼分析
2.3.2 master thread的潛在問題
2.4 關鍵特性
2.4.1 插入緩衝
2.4.2 兩次寫
2.4.3 自適應哈希索引
2.5 啟動、關閉與恢復
2.6 innodb plugin = 新版本的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 file header
4.5.2 page header
4.5.3 infimum和supremum記錄
4.5.4 user records與freespace
4.5.5 page directory
4.5.6 file trailer
4.5.7 innodb數據頁結構示例分析
4.6 named file formats
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.5 key分區
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 select ... for update & select ... lock in share mode
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章 備份與恢復
8.1 備份與恢復概述
8.2 冷備
8.3 邏輯備份
8.3.1 mysqldump
8.3.2 select ... into outfile
8.3.3 邏輯備份的恢復
8.3.4 load data infile
8.3.5 mysqlimport
8.4 二進制日誌備份與恢復
8.5 熱備
8.5.1 ibbackup
8.5.2 xtrabackup
8.5.3 xtrabackup實現增量備份
8.6 快照備份
8.7 複製
8.7.1 複製的工作原理
8.7.2 快照+複製的備份架構
8.8 小結
第9章 性能調優
9.1 選擇合適的cpu
9.2 記憶體的重要性
9.3 硬碟對資料庫性能的影響
9.3.1 傳統機械硬碟
9.3.2 固態硬碟
9.4 合理地設定raid
9.4.1 raid類型
9.4.2 raid write back功能
9.4.3 raid配置工具
9.5 作業系統的選擇也很重要
9.6 不同的檔案系統對資料庫性能的影響
9.7 選擇合適的基準測試工具
9.7.1 sysbench
9.7.2 mysql-tpcc
9.8 小結
第10章 innodb存儲引擎原始碼的編譯和調試
10.1 獲取innodb存儲引擎原始碼
10.2 innodb原始碼結構
10.3 編譯和調試innodb原始碼
10.3.1 windows下的調試
10.3.2 linux下的調試
10.4 小結