MySQL核心內幕
定價 : ¥56.00
會員價 : ¥42.00(75折)樣章免費試讀:http://www.china-pub.com/196166
作者: 祝定澤 張海 黃建昌
出版社:清華大學出版社
ISBN:9787302216964
上架時間:2009-12-30
出版日期:2010 年1月
開本:16開
頁碼:338
版次:1-1
【編輯精選】
新一輪MySQL熱浪襲來
翻開最新GA的MySQL源碼
國內首個開源的MySQL儲存引擎
跟蹤Sun收購MySQL後的動態變化
國內首次披露的 MySQL 核心視頻講解
國內首款開源MySQL儲存引擎Lillian的代碼
MySQL Bazaar中文分析結果
【內容簡介】
本書由Sun中國工程院的MySQL專家講解MySQL核心設計和實現。作者對MySQL分而治之,將複雜的MySQL核心劃分成多個功能子系統,從而化解了理解子系統的各個痛點。
本書共分12章。第1章介紹MySQL的曆史淵源。第2章介紹MySQL資料庫的架構。第3章深入瞭解MySQL原始碼,第4章解釋關鍵的類和演算法。從第5章開始直到最後,按各子系統進行講解,內容包括串連和網路系統、伺服器線程和資源管理、查詢解析與最佳化器、安全管理系統、儲存引擎介面詳解與實踐、經典儲存引擎、日誌功能及實踐分析和其他子系統。
配書光碟片中提供了相關的MySQL原始碼。
本書適合對核心編程設計感興趣的技術人員和開發人員以及在學習、工作中使用MySQL資料庫的各類技術人員閱讀。由於主要內容均涉及到MySQL核心原始碼,所以學習者應當具備C/C++預備知識。
【目錄】
第1章 MySQL的前世今生. 1
1.1 MySQL的曆史 2
1.2 儲存引擎 4
1.3 MySQL市場 6
1.4 後話 8
第2章 資料庫系統的立體視圖 9
2.1 資料庫系統架構 10
2.2 資料庫系統的分類 10
2.2.1 物件導向型資料庫 10
2.2.2 關係型資料庫 13
2.2.3 對象關係型資料庫 14
2.3 關係型資料庫系統架構 15
2.3.1 用戶端應用程式 16
2.3.2 查詢介面 16
2.3.3 查詢語句處理 17
2.3.4 查詢最佳化 18
2.3.5 語句執行 19
2.3.6 讀寫檔案 19
2.3.7 模組協作 19
2.3.8 RDBMS的階層 20
.2.4 MySQL資料庫系統 21
2.4.1 MySQL資料庫系統架構 22
2.4.2 子系統之間的聯絡 23
2.4.3 MySQL子系統和代碼 25
2.5 小結 29
第3章 暢遊原始碼 31
3.1 下載MySQL原始碼 32
3.1.1 Bazaar安裝 32
3.1.2 訪問MySQL原始碼 33
3.2 原始碼目錄結構 35
3.2.1 主要關鍵目錄 36
3.2.2 開源社區貢獻的代碼 42
3.2.3 解讀sql/sql_delete.cc 43
3.3 MySQL核心分析工具 46
3.3.1 編譯和安裝MySQL 48
3.3.2 調試MySQL 50
3.3.3 原始碼檢索工具 56
3.3.4 Doxyen分析原始碼 57
3.4 小結 58
第4章 核心類、庫函數和演算法 59
4.1 核心類 61
4.1.1 線程類(THD) 61
4.1.2 Item類 65
4.1.3 表描述類- TABLE 68
4.1.4 FIELD類 69
4.2 函數庫 72
4.2.1 記憶體操作函數 73
4.2.2 檔案系統操作函數 74
4.2.3 雜湊表操作 76
4.2.4 字串操作 77
4.2.5 宏定義 78
4.3 核心演算法 78
4.3.1 Bitmaps –位元影像 79
4.3.2 表串連緩衝工作原理 80
4.3.3 MySQL排序實現 83
4.3.4 字元集和校對規則 86
4.4 小結 88
第5章 串連和網路系統 89
5.1 MySQL NET協議 90
5.1.1 協議和作業系統協議棧 90
5.2 網路包格式 92
5.2.1 Null結尾字串和
帶長度標識字串 93
5.2.2 網路包頭部格式 94
5.3 用戶端發送的包 95
5.3.1 用戶端認證包 95
5.3.2 命令包(Command) 96
5.4 伺服器端發送的包 99
5.4.1 握手初始化包 99
5.4.2 結果包分類 102
5.4.3 OK包 102
5.4.4 ERROR包 105
5.4.5 結果集包 107
5.5 小結 114
第6章 伺服器線程和資源管理 117
6.1 線程還是進程 118
6.1.1 線程與進程的比較 119
6.2 MySQL線程問題和解決方案 120
6.2.1 標準C函數調用 121
6.2.2 互斥鎖 122
6.2.3 線程同步 124
6.3 用戶端請求的處理 126
6.3.1 MySQL的啟動過程 127
6.3.2 執行流 128
6.4 類、API、變數和結構體 130
6.5 MySQL記憶體配置 132
6.5.1 記憶體共用塊 132
6.5.2 線程記憶體地區(TMA) 133
6.5.3 MySQL如何?記憶體配置 134
6.6 小結 137
第7章 查詢解析與最佳化器 139
7.1 MySQL解析器 140
7.1.1 詞法剖析器.. 143
7.1.2 文法分析器 146
7.1.3 幾個關鍵類 146
7.2 查詢最佳化工具 154
7.2.1 傳統最佳化演算法 154
7.2.2 MySQL的查詢演算法 155
7.3 小結 170
第8章 安全管理系統 171
8.1 帳號認證 172
8.1.1 帳號定義 172
8.1.2 身份審核 173
8.1.3 具體優先原則 182
8.2 許可權控制 183
8.2.1 系統許可權表 184
8.2.2 許可權審核 186
8.2.3 權限等級 189
8.3 安全部署 193
8.3.1 伺服器系統安全 194
8.3.2 資料庫系統安全 194
8.4 小結 198
第9章 儲存引擎介面詳解與實踐 199
9.1 MySQL外掛程式式儲存引擎體繫結構 200
9.1.1 基本流程 200
9.1.2 從原始碼檔案開始 201
9.1.3 意想不到的協助 201
9.1.4 Handlerton 202
9.1.5 Handler類 204
9.1.6 Archive儲存引擎的
簡單分析 208
9.2 開發我的儲存引擎——
Lillian(模板剖析) 209
9.2.1 底層I/O類 209
9.2.2 Lillian_data類 209
9.2.3 Lillian_index類 217
9.3 開發我的儲存引擎——
Lillian(代碼編寫) 232
9.3.1 階段一:初始化儲存引擎 232
9.3.2 階段二:表操作 238
9.3.3 階段三:讀寫資料 243
9.3.4 階段四:修改、刪除資料 245
9.3.5 階段五:索引功能 248
9.4 小結 261
第10章 儲存引擎 263
10.1 MySQL中繼資料檔案——frm 264
10.2 MyISAM儲存引擎 270
10.2.1 MyISAM的架構 270
10.2.2 資料檔案(.MYD) 271
10.2.3 索引檔案(.MYI) 277
10.3 InnoDB儲存引擎 288
10.3.1 InnoDB的宗旨和
主要功能特性 288
10.3.2 InnoDB的架構和
代碼布局 288
10.3.3 InnoDB 檔案格式 291
10.3.4 InnoDB 記錄結構 292
10.3.5 InnoDB頁結構 296
10.4 小結 300
第11章 MySQL日誌功能及實現分析 301
11.1 錯誤記錄檔 302
11.1.1 錯誤記錄檔功能介紹 302
11.1.2 錯誤記錄檔初始化 303
11.1.3 錯誤記錄檔的記錄實現 305
11.2 普通日誌 307
11.2.1 普通日誌功能介紹 307
11.2.2 普通日誌的初始化 310
11.2.3 普通日誌記錄功能實現 311
11.3 慢查詢日誌 312
11.3.1 慢查詢日誌功能概述 312
11.3.2 慢查詢日誌的初始化 313
11.3.3 慢查詢日誌的實現 314
11.4 二進位日誌 317
11.4.1 二進位日誌功能介紹 317
11.4.2 二進位日誌的初始化 320
11.4.3 二進位日誌的實現 321
11.5 小結 322
第12章 其他子系統 323
12.1 複製功能(Replication)子系統 324
12.1.1 Replication基礎架構
描述 324
12.1.2 Replication實現原理
簡述 325
12.1.3 Replication複製線程 326
12.1.4 Replication功能檔案 326
12.1.5 Replication子系統組成 327
12.1.6 Replication原理剖析 327
12.1.7 小結 342
12.2 錯誤訊息子系統 342
12.2.1 錯誤訊息的實現原理 342
12.2.2 錯誤訊息的一致性 344
12.2.3 不同版本下錯誤訊息的添加方法 345
12.2.4 小結 345
附錄一 Bazaar入門指南 347
附錄二 MySQL源碼分布縱覽 354
參考文獻... 371