M ySQL 最為人稱道之處莫過於它的自由精神,所有原始程式碼唾手可得,可以用近乎零成本建立容量巨大的資料庫或者網上交易系統。
本書將複雜的MySQL核心劃分成多個功能子系統,幫助讀者化解瞭解子系統的困難,提供節省成本的資料庫管理系統的可行性新方案。讀者透過本書就可以做一些資料庫核心開發的工作,甚至訂製你需要的資料庫。
IT 都很注重實效,因此,這是一本偏重實作的書,有趣、易讀而且有幫助。希望讀者可以從本書中領略到更多 MySQL 核心的精妙之處。從閱讀本書開始,跨越到嘗試改進快速發展的 MySQL 核心程式碼。
本書從整體出發,讓讀者對 MySQL 核心的各個核心子系統有整體的概念,包括它們提供什麼樣的服務?為什麼要提供這樣的服務?是如何實現的?還包含 MySQL 核心開發者在開發時需要用到的資訊,如偵錯技術、注意事項等。如果讀者側重於了解核心,可以進一步研究原始程式碼本身。對使用 MySQL 資料庫的各類技術人員提供非常有用的參考。剛入門的 MySQL 使用者,也可在前幾章找到總體上的框架概述,並透過後面章節的實作學習加深對 MySQL 的認識。
適合對核心程式設計感興趣的技術人員和開發者,以及在學習、工作中使用MySQL資料庫的各類技術人員閱讀。
目錄
第1 章 MySQL 的前世今生
1.1 MySQL 的歷史
1.2 儲存引擎
1.3 MySQL 市場
1.4 小結
第2 章 資料庫系統的立體檢視
2.1 資料庫系統架構
2.2 資料庫系統的分類
2.2.1 物件導向型資料庫
2.2.2 關聯式資料庫
2.2.3 物件關聯式資料庫
2.3 關聯式資料庫系統架構
2.3.1 用戶端應用程式
2.3.2 查詢介面
2.3.3 查詢敘述處理
2.3.4 查詢最佳化
2.3.5 敘述執行
2.3.6 讀寫檔案
2.3.7 模組協作
2.3.8 RDBMS 的層次結構
2.4 MySQL 資料庫系統
2.4.1 MySQL 資料庫系統架構
2.4.2 子系統之間的關聯
2.4.3 MySQL 子系統和程式碼
2.5 小結
第3 章 暢遊原始程式碼
3.1 下載MySQL 原始程式碼
3.1.1 Bazaar 安裝
3.1.2 存取MySQL 原始程式碼
3.2 原始程式碼目錄結構
3.2.1 主要關鍵目錄
3.2.2 開放原始碼社區貢獻的程式碼
3.2.3 解讀sql/sql_delete.cc
3.3 MySQL 核心分析工具
3.3.1 編譯和安裝MySQL
3.3.2 偵錯MySQL
3.3.3 原始程式碼檢索工具
3.3.4 Doxygen 分析原始程式碼
3.4 小結
第4 章 核心類別、函式庫函數和演算法
4.1 核心類別
4.1.1 執行緒類別(THD)
4.1.2 Item 類別
4.1.3 表描述類別——TABLE
4.1.4 Field 類別
4.2 函數庫
4.2.1 記憶體操作函數
4.2.2 檔案系統操作函數
4.2.3 雜湊表操作
4.2.4 字串操作
4.2.5 巨集定義
4.3 核心算法
4.3.1 Bitmaps——點陣圖
4.3.2 表連接緩衝工作原理
4.3.3 MySQL 排序實現
4.3.4 字元集和校對規則
4.4 小結
第5 章 連接和網路系統
5.1 MySQL NET 協定
5.1.1 協定和作業系統協定堆疊
5.2 網路封包格式
5.2.1 Null 結尾字串和帶長度標誌字串
5.2.2 網路封包頭部格式
5.3 用戶端發送的封包
5.3.1 用戶端驗證封包
5.3.2 指令封包(Command)
5.4 伺服器端發送的封包
5.4.1 驗證初始化封包
5.4.2 結果封包分類
5.4.3 OK 封包
5.4.4 ERROR 封包
5.4.5 結果集封包
5.5 小結
第6 章 伺服器執行緒和資源管理
6.1 執行緒還是處理程序
6.1.1 執行緒概念的引入
6.1.2 執行緒與處理程序的比較
6.2 MySQL 執行緒問題和解決方案
6.2.1 標準C 函式呼叫
6.2.2 互斥量
6.2.3 執行緒同步
6.3 用戶端請求的處理
6.3.1 MySQL 的啟動過程
6.3.2 執行流
6.4 類別、API、變數和結構體
6.5 MySQL 記憶體分配
6.5.1 記憶體共用區塊
6.5.2 執行緒記憶體區域(TMA)
6.5.3 MySQL 如何實現記憶體分配
6.6 小結
第7 章 查詢解析與最佳化器
7.1 MySQL 解析器
7.1.1 詞法分析程式
7.1.2 語法分析器
7.1.3 幾個關鍵類別
7.2 查詢最佳化工具
7.2.1 傳統最佳化演算法
7.2.2 MySQL 的查詢演算法
7.3 小結
第8 章 安全管理系統
8.1 帳號驗證
8.1.1 帳號定義
8.1.2 身份審核
8.1.3 實際優先原則
8.2 權限控制
8.2.1 系統許可權表
8.2.2 許可權審核
8.2.3 許可權級別
8.3 安全佈署
8.3.1 伺服器系統安全
8.3.2 資料庫系統安全
8.4 小結
第9 章 儲存引擎介面詳解與實作
9.1 MySQL 外掛式儲存引擎體系結構
9.1.1 基本流程
9.1.2 從原始程式碼檔案開始
9.1.3 意想不到的幫助
9.1.4 handlerton
9.1.5 handler 類別
9.1.6 Archive 儲存引擎的簡單分析
9.2 開發我的儲存引擎——Lillian( 模版剖析)
9.2.1 底層I/O 類別
9.2.2 Lillian_data 類別
9.2.3 Lillian_index 類別
9.3 開發我的儲存引擎——Lillian( 程式碼撰寫)
9.3.1 階段一:初始化儲存引擎
9.3.2 階段二:表操作
9.3.3 階段三:讀寫資料
9.3.4 階段四:修改、刪除資料
9.3.5 階段五:索引功能
9.4 小結
第10 章 經典儲存引擎
10.1 MySQL 中繼資料檔案——frm
10.2 MyISAM 儲存引擎
10.2.1 MyISAM 的架構
10.2.2 資料檔案(.MYD)
10.2.3 索引檔案(.MYI)
10.3 InnoDB 儲存引擎
10.3.1 InnoDB 的宗旨和主要功能特性
10.3.2 InnoDB 的架構和程式碼佈局
10.3.3 InnoDB 檔案格式
10.3.4 InnoDB 記錄結構
10.3.5 InnoDB 頁結構
10.4 小結
第11 章 MySQL 記錄檔功能及實現分析
11.1 錯誤記錄檔
11.1.1 錯誤記錄檔功能介紹
11.1.2 錯誤記錄檔初始化
11.1.3 錯誤記錄檔的記錄實現
11.2 普通記錄檔
11.2.1 普通記錄檔功能介紹
11.2.2 普通記錄檔的初始化
11.2.3 普通記錄檔記錄功能實現
11.3 慢查詢記錄檔( 譯註:Slow query log)
11.3.1 慢查詢記錄檔功能概述
11.3.2 慢查詢記錄檔的初始化
11.3.3 慢查詢記錄檔的實現
11.4 二進位記錄檔
11.4.1 二進位記錄檔功能介紹
11.4.2 二進位記錄檔的初始化
11.4.3 二進位記錄檔的實現
11.5 小結
第12 章 其他子系統
12.1 複製功能(Replication) 子系統
12.1.1 Replication 基礎架構描述
12.1.2 Replication 實現原理簡述
12.1.3 Replication 複製執行緒
12.1.4 Replication 功能檔案
12.1.5 Replication 子系統組成
12.1.6 Replication 原理剖析
12.1.7 小結
12.2 錯誤訊息子系統
12.2.1 錯誤訊息的實現原理
12.2.2 錯誤訊息的一致性
12.2.3 不同版本下錯誤訊息的增加方法
12.2.4 小結
附錄A Bazaar 入門指南
A.1 什麼是Bazaar
A.2 安裝Bazaar
A.2.1 Linux 下安裝
A.2.2 其他系統下安裝
A.3 向Bazaar 中註冊使用者資訊
A.4 向Bazaar 中傳送專案檔案
A.4.1 建立專案
第1 章 MySQL 的前世今生
1.1 MySQL 的歷史
1.2 儲存引擎
1.3 MySQL 市場
1.4 小結
第2 章 資料庫系統的立體檢視
2.1 資料庫系統架構
2.2 資料庫系統的分類
2.2.1 物件導向型資料庫
2.2.2 關聯式資料庫
2.2.3 物件關聯式資料庫
2.3 關聯式資料庫系統架構
2.3.1 用戶端應用程式
2.3.2 查詢介面
2.3.3 查詢敘述處理
2.3.4 查詢最佳化
2.3.5 敘述執行
2.3.6 讀寫檔案
2.3.7 模組協作
2.3.8 RDBMS 的層次結構
2.4 MySQL 資料庫系統
2.4.1 MySQL 資料庫系統架構
2.4.2 子系統之間的關聯
2.4.3 My...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。