編輯推薦
從公共可用性的意義上講,MySQL原始碼是開放原始碼,但如果對其不了解,則實質上,它對於您來說是封閉的。MySQL開發團隊的前成/員Sasha Pachev通過本書給出了MySQL 5的全面指南,揭示了這一強大資料庫的內部運作。您將直奔MySQL核心技術,了解各種數據結構和各種方便的功能的運作情況,了解如何添加新的存儲引擎和配置選項等。《深入理解MySQL核心技術》從結構概況講起,在這一部分解釋了MysQL的不同組件是如何協同工作的。接著將學習設定有效的可編譯代碼副本的步驟,然後使用基本架構添加自己的配置變數和存儲引擎。
本書其他章節包括:
核心伺服器類、結構和API
客戶端和伺服器之間的通信協定
配置變數,包括添加自己的配置變數的教程和代碼
基於執行緒的請求處理以及如何在MySQLqh使用執行緒
MySQL存儲引擎總覽
集成第三方存儲引擎的存儲引擎接口
表鎖管理器
執行SQL命令的分析器和最佳化器
將事務存儲引擎整合至IJMySQL中
複製核心
通過對原始碼中那些未作文檔說明的關鍵數據結構和方法進行描述,《深入理解MySQL核心技術》為您提供了很好的機會,幫助您了解這個廣經企業考驗的資料庫的內部運作。不論您是開發人員、資料庫管理員、程式設計師、軟體供應商還是學生,本書將指導您探索和改進大型資料庫。
·查看全部>>
·《蔡康永的說話之道》58折搶購 >>·獨唱團(韓寒主編,絕版熱賣) >>
內容簡介
從公共可用性的意義上講,MySQL原始碼是開放原始碼,但如果對其不了解,則實質上,它對於您來說是封閉的。MysQL開發團隊的前成員Sasha Pachev通過《深入理解MySQL核心技術》給出了MySQL 5的全面指南,揭示了這一強大資料庫的內部運作。您將直奔MySQL核心技術,了解各種數據結構和各種方便的功能的運作情況,了解如何添加新的存儲引擎和配置選項等。
《深入理解MySQL核心技術》從結構概況講起,在這一部分解釋了MysQL的不同組件是如何協同工作的。接著將學習設定有效的可編譯代碼副本的步驟,然後使用基本架構添加自己的配置變數和存儲引擎。
目錄
前言
第1章 MySQL的歷史與架構
MySQL的歷史
MySQL的架構
第2章 MySQL原始碼基本要點
BitKeeper
準備系統:從BitKeeper樹構建MySQL
從BitKeeper樹構建MySQL
從原始碼分發版本構建
將MysQL安裝到系統目錄
原始碼目錄布局
準備系統:在調試程式中運行MysQL
以調試程式為嚮導探索原始碼
gdb使用基本要點
在原始碼中查找信息
值得關注的斷點和變數
修改原始碼
編碼指南
不斷更新BitKeeper知識庫
提交補丁
第3章 核心類、結構、變數及API
THD
NET
TABLE
Field
實用程式API調用
處理器宏
全局變數
第4章 客戶端/伺服器通信
協定概述
包格式
MysQL協定與0S層之間的關係
驗證握手
命令包
伺服器回響
第5章 配置變數
配置變數教程
特定配置變數的各有關方面
第6章 基於執行緒的請求處理
執行緒與進程
請求處理的實現
執行緒編程問題
第7章 存儲引擎接口
向MysQL添加定製存儲引擎
第8章 並發訪問與鎖定
表鎖管理器
第9章 解析器和最佳化器
解析器
最佳化器
第10章 存儲引擎
架構的相同之處
InnoDB
Memory(Heap)
MyISAM Merge
NDB
Archive
Federated
第11章 事務
事務存儲引擎實現概述
實現處理器子類
定義handlerton
使用查詢高速快取
使用複製二進制日誌
避免死鎖
第12章 複製
概述
基於語句的複製與基於行的複製
雙執行緒從伺服器
多主伺服器
有助於理解複製的SQL命令
二進制日誌格式
創建自定義複製實用程式
·收起全部<<
前言
2003年的夏天,在MySQL的郵件列表上有人提議寫一本有關MySQL核心組件的書。當讀到這封郵件的時候,我意識到自己具備寫這樣一本書的背景。但當時我剛剛寫完我的第一本書,還沒有再寫一本的打算。我試著說服自己不要承擔這個責任,並對自己說,誰也不會出版一本技術性、專業性這么強的書,因為僅僅有一位讀者顯然是不夠的。
後來,我想起oreilly公司出版的《深入理解LINUX核心》和《Linux設備驅動程式》(這兩本書的中文版均已由中國電力出版社出版),這讓我失去了藉口。我意識到一扇門已經打開,我就站在門口,而我的惰性卻正在壞事。我想起《摩門經》中的一句話:“自然人是上帝的敵人”。品味著話中的含義,如果一個人苟且偷安,為了片刻的歡愉而安穩地待在自己與生俱來的“自在區”里,那他是成不了什麼氣候的。當這個人迫使自己離開“自在區”去做一件困難重重卻深以為是的事情的時候,好事就會來臨。我給OReilly公司寫了一封郵件,提出了出版計畫。
有意思的是,我的編輯恰好就是參與出版《深入理解Linux核心》和《Linux設備驅動程式》的Andy 0ram。他和我一起為本書的出版而努力,我對他的幫助深表感激。我覺得他的長處很好地彌補了我的短處。
本書挑戰頗多。本書介紹關於應用程式的核心技術,意味著要以開發人員而不是以用戶或管理員的身份研究應用程式,這要求作者對應用程式有更深層次的了解。雖然我在MySQL原始碼方面涉獵甚廣,但仍然要做大量研究工作去理解那些駭人聽聞的算法細節、函式和類的目的、某些決策的原因以及與本書有關的其他事項。此外,在我寫作本書的同時,MySQL開發人員正在編寫新代碼,要跟上進度可不容易。而且寫作本書時我還得做其他工作,以便養活我日益壯大的家庭。所幸,那項工作中有一大部分內容與MySQL核心技術有關,這才讓我在這場遊戲中立於不敗之地。