My SQL核心內幕

出版時間:2010-1  出版社:清華大學出版社  作者:祝定澤  頁數:369  字數:584000  
Tag標簽:無  

前言

得知ISVE組的兩個人正在寫MySQL內核方面的書時,感覺很驚訝。的確,Sun中國工程研究院的人寫書揭示軟件內核,是一件非常值得注意的事情。幾年前,我們已對MySQL的發(fā)展有所關注。從Sun收購MySQL至今,MySQL仍然是最受歡迎的開源數據庫軟件。開源、免費的MySQL,讓你可以用近乎零成本建立容量巨大的數據庫或者網上交易系統(tǒng),再加上Sun和無數社區(qū)精英的技術支持,不風靡都很難!但這些年來,MySQL中文資料較為匱乏,基本上處在初、中級的水準,缺乏足夠的深度。人們對該軟件往往知其然而不知其所以然。這導致了在中國MySQL數據庫高級人才相對較少。《MySQL核心內幕》這本書是研究MySQL內核的絕佳指導資料,真正做到了“授人以漁”。打開MySQL的源代碼稍作觀察,便可發(fā)現(xiàn)其規(guī)模之大,有如阿房宮——“覆壓三百余里,隔離天日”;其關系錯綜復雜,可謂“廊腰縵回,檐牙高啄,各抱地勢,勾心斗角”。這無疑給想深入理解MySQL的人士出了一個難題。在《MySQL核心內幕》這本書中,作者將MySQL分而治之,將復雜的MySQL內核瞬間瓦解成多個功能子系統(tǒng)。每一章中,作者抽絲剝繭,化解理解子系統(tǒng)的各個難點。所以,你面對的不再僅僅是赤裸裸的代碼,而是真正能雅俗共賞的設計藝術。在讀書的同時,一定要親身實踐:理解內核某部分的捷徑就是對它做出修改,這樣才能越過代碼本身看到內核的深層機理。讀者帶著一份耐心、一份執(zhí)著,闖過一道道難關,直到閱讀完本書的最后一章時,會有“驀然回首,那人卻在燈火闌珊處”的欣喜感覺!相信在本書的帶領下,中文地區(qū)MySQL用戶和支持者的水平能夠更上一層樓。

內容概要

本書由Sun中國工程院的MySQL專家講解MySQL內核設計和實現(xiàn)。作者對MySQL分而治之,將復雜的MySQL內核劃分成多個功能子系統(tǒng),從而化解了理解子系統(tǒng)的各個難點。    本書共分12章。第1章介紹MySQL的歷史淵源。第2章介紹MySQL數據庫的架構。第3章深入了解MySQL源代碼,第4章解釋關鍵的類和算法。從第5章開始直到最后,按各子系統(tǒng)進行講解,內容包括連接和網絡系統(tǒng)、服務器線程和資源管理、查詢解析與優(yōu)化器、安全管理系統(tǒng)、存儲引擎接口詳解與實踐、經典存儲引擎、日志功能及實踐分析和其他子系統(tǒng)。    配書光盤中提供了相關的MySQL源代碼。    本書適合對內核編程設計感興趣的技術人員和開發(fā)者以及在學習、工作中使用MySQL數據庫的各類技術人員閱讀。由于主要內容均涉及到MySQL內核源代碼,所以學習者應當具備C/C++預備知識。

作者簡介

祝定澤,英文名“Hironics”,常用網名也為此。 Sun MySQL架構師,一致關注MySQL的在國內的成長與應用。幾位作者共同運維MySQL技術網站http://www.mysqlsystems.com,Hironics經常供稿于InfoQ。Hironics擁有MySQL的全部認證:CMA、CMDEV、CMDBA和CMCDBA。

書籍目錄

第1章 MySQL的前世今生 1.1 MySQL的歷史   1.2 存儲引擎   1.3 MySQL市場   1.4 后話  第2章 數據庫系統(tǒng)的立體視圖   2.1 數據庫系統(tǒng)架構   2.2 數據庫系統(tǒng)的分類    2.2.1 面向對象型數據庫    2.2.2 關系型數據庫    2.2.3 對象關系型數據庫   2.3 關系型數據庫系統(tǒng)架構    2.3.1 客戶端應用程序    2.3.2 查詢接口    2.3.3 查詢語句處理    2.3.4 查詢優(yōu)化    2.3.5 語句執(zhí)行    2.3.6 讀寫文件    2.3.7 模塊協(xié)作    2.3.8 RDBMS的層次結構   2.4 MySQL數據庫系統(tǒng)    2.4.1 MySQL數據庫系統(tǒng)架構    2.4.2 子系統(tǒng)之間的聯(lián)系    2.4.3 MySQL子系統(tǒng)和代碼   2.5 小結  第3章 暢游源代碼   3.1 下載MySQL源代碼    3.1.1 Bazaar安裝    3.1.2 訪問MySQL源代碼   3.2 源代碼目錄結構    3.2.1 主要關鍵目錄    3.2.2 開源社區(qū)貢獻的代碼    3.2.3 解讀sql/sql_delete.cc   3.3 MySQL內核分析工具    3.3.1 編譯和安裝MySQL    3.3.2 調試MySQL    3.3.3 源代碼檢索工具    3.3.4 Doxyen分析源代碼   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 文件系統(tǒng)操作函數    4.2.3 哈希表操作    4.2.4 字符串操作    4.2.5 宏定義   4.3 核心算法    4.3.1 Bitmaps –位圖    4.3.2 表連接緩沖工作原理    4.3.3 MySQL排序實現(xiàn)    4.3.4 字符集和校對規(guī)則   4.4 小結  第5章 連接和網絡系統(tǒng)   5.1 MySQL NET協(xié)議    5.1.1 協(xié)議和操作系統(tǒng)協(xié)議棧   5.2 網絡包格式    5.2.1 Null結尾字符串和帶長度標識字符串    5.2.2 網絡包頭部格式   5.3 客戶端發(fā)送的包    5.3.1 客戶端認證包    5.3.2 命令包(Command)   5.4 服務器端發(fā)送的包    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.2 MySQL線程問題和解決方案    6.2.1 標準C函數調用    6.2.2 互斥鎖    6.2.3 線程同步   6.3 客戶端請求的處理    6.3.1 MySQL的啟動過程    6.3.2 執(zhí)行流   6.4 類、API、變量和結構體   6.5 MySQL內存分配    6.5.1 內存共享塊    6.5.2 線程內存區(qū)域(TMA)    6.5.3 MySQL如何實現(xiàn)內存分配   6.6 小結  第7章 查詢解析與優(yōu)化器   7.1 MySQL解析器    7.1.1 詞法分析程序  7.1.2 語法分析器    7.1.3 幾個關鍵類   7.2 查詢優(yōu)化器    7.2.1 傳統(tǒng)優(yōu)化算法    7.2.2 MySQL的查詢算法   7.3 小結  第8章 安全管理系統(tǒng)   8.1 賬號認證    8.1.1 賬號定義    8.1.2 身份審核    8.1.3 具體優(yōu)先原則   8.2 權限控制    8.2.1 系統(tǒng)權限表    8.2.2 權限審核    8.2.3 權限級別   8.3 安全部署    8.3.1 服務器系統(tǒng)安全    8.3.2 數據庫系統(tǒng)安全   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 開發(fā)我的存儲引擎——Lillian(模板剖析)    9.2.1 底層I/O類    9.2.2 Lillian_data類    9.2.3 Lillian_index類   9.3 開發(fā)我的存儲引擎——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日志功能及實現(xiàn)分析   11.1 錯誤日志    11.1.1 錯誤日志功能介紹    11.1.2 錯誤日志初始化    11.1.3 錯誤日志的記錄實現(xiàn)   11.2 普通日志    11.2.1 普通日志功能介紹    11.2.2 普通日志的初始化    11.2.3 普通日志記錄功能實現(xiàn)   11.3 慢查詢日志    11.3.1 慢查詢日志功能概述    11.3.2 慢查詢日志的初始化    11.3.3 慢查詢日志的實現(xiàn)   11.4 二進制日志    11.4.1 二進制日志功能介紹    11.4.2 二進制日志的初始化    11.4.3 二進制日志的實現(xiàn)   11.5 小結  第12章 其他子系統(tǒng)   12.1 復制功能(Replication)子系統(tǒng)    12.1.1 Replication基礎架構描述    12.1.2 Replication實現(xiàn)原理簡述    12.1.3 Replication復制線程    12.1.4 Replication功能文件    12.1.5 Replication子系統(tǒng)組成    12.1.6 Replication原理剖析    12.1.7 小結   12.2 錯誤消息子系統(tǒng)    12.2.1 錯誤消息的實現(xiàn)原理    12.2.2 錯誤消息的一致性    12.2.3 不同版本下錯誤消息的添加方法    12.2.4 小結  附錄一 Bazaar入門指南  附錄二 MySQL源碼分布縱覽  參考文獻

章節(jié)摘錄

插圖:第1章 MySQL的前世今生1.2 存儲引擎MySQL的獨到之處——插件式存儲引擎(Pluggable Storage Engine),可謂將數據庫理論發(fā)揮得淋漓盡致,完美地映射了數據庫的外模式和內模式理論。MySQL存儲類別的粒度小到每個表,用戶可以最大程度地利用各種引擎的優(yōu)點,又避免了它的缺點。相對于其他數據庫系統(tǒng)往往無法選擇存儲引擎的現(xiàn)實,MySQL能夠滿足多方面的需求。如數據庫倉庫市場,嵌入式數據庫等。IT詞典:內模式和外模式為了有效地組織和管理數據,提高數據庫的邏輯獨立性和物理獨立性,人們?yōu)閿祿煸O計了一個嚴謹的體系結構,數據庫領域公認的標準結構是三級模式結構,它包括外模式、模式和內模式。數據庫結構分為三級:面向用戶或應用程序員的用戶級、面向建立和維護數據庫人員的概念級、面向系統(tǒng)程序員的物理級。用戶級對應外模式,概念級對應模式,物理級對應內模式,使不同級別的用戶對數據庫形成不同的視圖。所謂視圖,就是指觀察、認識和理解數據的范圍、角度和方法,是數據庫在用戶方面看到的特征,很顯然,不同層次(級別)的用戶所"看到''的數據庫是不相同的。當前市場上主流的數據庫系統(tǒng)都是按行進行存儲的,但這類存儲引擎存在不少缺陷。下面用一個例子來說明按列存儲的存儲引擎。這個例子將說明按列存儲在某些情況下在性能上是優(yōu)于按行存儲的。表1-2是一個存儲員工部分信息的表T,包含用戶ID(empid),姓名域(lastname, firstname)和工資(salary)。

媒體關注與評論

當初聽說ISVE組的兩個人正在寫MySQL內核方面的書,感覺非常詫異。不曾想SUN中國工程研究院的人也有心寫內核方面的書。 如今當這本書完整的展現(xiàn)在我面前時,我確定他們不是在開玩笑。但這些年來,MySQL中文資料較為匱乏,基本處在初、中級的水準,缺乏足夠的深度。人們往往知其然而不知其所以然。這導致了在中國 MySQL 數據庫 高級人才相對較少?!禡ySQL核心內幕》這本書是研究MySQL內核的絕佳指導資料,真正做到了“授人以漁”?!  狵evin Song——Sun中國工程院院長 MySQL在業(yè)界被譽為世界上最流行的開源數據庫,它提供了成本核算的數據庫管理系統(tǒng)的可行性新方案。Sun收購MySQL的開源業(yè)務通過給客戶提供高品質的服務提供經驗豐富的技術支持工程師。要了解源代碼水平的全部細節(jié)和好處,工程師們要了解MySQL內核的基本原理 。我相信這本書完成了這項任務,祝定澤,一個有成就的MySQL專家,幫助工程師和讀者了解MySQL的哲學和設計。享受開放源碼的自由世界。 讓我們慶祝這種可能性!   ——亞太區(qū)首席MySQL顧問 梶山隆輔 作為一名開發(fā)人員,不應該只限于使用工具,而應該去了解其原理及本質。了解一個工具原理最好的方法莫過于從源代碼著手?!禡ySQL 核心內幕》為想要了解MySQL核心機理的國內開發(fā)人員打開了一扇門,作者通過理論、實踐相結合,對系統(tǒng)架構及核心代碼進行了詳盡的闡述,本書對于熱愛MySQL開源軟件,同時喜歡刨根問底的技術人員是一本必看的好書。   ——金融界架構師 王志剛 《MySQL 核心內幕》是國內第一本解析MySQL源代碼的著作,深刻揭示了 MySQL的內部機理、闡述了MySQL各子系統(tǒng)的關聯(lián)、并實例編寫了自定義存儲引擎,相信從事MySQL相關工作的技術人員可從中受益。   ——百度高級DBA 吳詩展

編輯推薦

《My SQL核心內幕》:新一輪MySQL熱浪襲來,翻開最新GA的MySQL源碼,國內首個開源的MySQL存儲引擎,跟蹤Sun收購MySQL后的動態(tài)變化。國內首次披露的 MySQL 內核視頻講解,國內首款開源MySQL存儲引擎Lillian的代碼,MySQL Bazaar中文分析結果,更多參考文檔和資源。如果您是一名有著強烈使命感的IT技術高人……抑或是一名才華橫溢的設計師……如果您有按捺不住的創(chuàng)作沖動……如果您對市場上的圖書有著諸多無奈……如果您打算潛心創(chuàng)作一本“永垂不朽”的IT圖書……

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    My SQL核心內幕 PDF格式下載


用戶評論 (總計19條)

 
 

  •   剛才大致翻了一下,書的質量比較好,但是內容不如想象中的好!本來很想看Bitmap算法的,結果打開一看,只有半頁講的算法。呵呵
  •   沒太仔細看內容,但確實不錯的一本書。
  •   可惜我買了兩本
  •   幫老公拍的,不錯
  •   等我看完了再來評論哈
  •   看了以后,茅塞頓開...好書....
  •   中國人寫的東西,渣渣
  •   優(yōu)化mysql必看的參考書
  •   對于要研究mysql的人來說,這本書很有幫助
  •   詳細內容還沒有看,但是貌似沒有想象中的解釋的詳細具體,不過這個內核的東西還是應該自己去摸索啊~~~
  •   多數是在講解源碼,需要一定的基礎知識,后面的部分還沒看。
  •   初步看了一下 ,還行
  •   不錯一定要熟悉C不然你沒法看
  •   剛拿到書就有些破損而且比較舊感覺9成新.質量真的一般覺得像二手書.
  •   老公說不實用
  •   第338-355是缺少的!
  •   我看了五章,書很空洞,不知道在講些什么,有種你再刪
  •   幫同事買的,送貨一如既往的快速,就是紙質沒有想象中那么好
  •   說的很詳細,非常好。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7