MySQL技術內幕:InnoDB儲存引擎
《MySQL技術內幕:InnoDB儲存引擎》前言
過去這些年,我一直在和各種不同的資料庫打交道,見證了MySQL從一個小型的關係型資料庫發展成為各大企業的核心資料庫系統的過程,並且參與了一些大大小小的專案的開發工作,成功地幫助開發人員構建了一些可靠、健壯的應用程式。在這個過程中積累了一些經驗,正是這些不斷累積的經驗賦予了我靈感,於是有了本書。這本書實際上反映了這些年來我做了哪些事情,彙集了很多同行每天可能都會遇到的一些問題,並給出瞭解決方案。
《MySQL技術內幕:InnoDB儲存引擎》不僅介紹了InnoDB儲存引擎的諸多功能和特性,而且還闡述瞭如何正確地使用這些功能和特性。更重要的是,它還嘗試教大家如何Think Different。Think Different是20世紀90年代蘋果公司在其曠日持久的宣傳活動中提出的一個口號,藉此來重振公司的品牌,更重要的是改變人們對技術在日常生活中的作用的看法。需要注意的是,蘋果的口號不是Think Differently,而是Think Different。這裡的Different是名詞,意味該思考些什麼。
很多DBA和開發人員都相信某些“神話”,然而這些“神話”往往都是錯誤的。無論計算機技術發展的速度變得多快、資料庫的使用變得多麼簡單,任何時候WHY都比WHAT重要。只有真正地理解了內部實現原理、體系結構,才能更好地去使用。這正是人類正確思考問題的原則。因此,對於當前出現的技術,儘管學習應用層面的技術很重要,但更重要的是,應當正確地理解和使用這些技術。
關於這本書,我想實現好幾個目標,但最重要的是想告訴大家如下幾個簡單的觀點:
- 不要相信任何“神話”,學會自己思考。
- 不要墨守成規,大部分人都知道的事情可能是錯誤的。
- 不要相信網上的傳言,去測試,根據自己的實踐做出決定。
- 花時間充分地思考,敢於提出質疑。
為什麼寫本書
當前有關MySQL的書籍大部分都集中在教讀者如何使用MySQL,例如SQL語句的使用、複製的搭建、資料的切分等。沒錯,這對快速掌握和使用MySQL資料庫非常有好處,但是真正的資料庫工作者需要了解的不僅僅是應用,更多的是內部的具體實現。MySQL資料庫獨有的外掛式儲存引擎結構使得想要在一本書內完整地講解各個儲存引擎變得十分困難。有的書可能偏重於對MyISAM的介紹,有的書則可能偏重於對InnoDB儲存引擎的介紹。對於初級的DBA來說,這可能會使他們的理解變得更困難。對於大多數MySQL DBA和開發人員來說,他們往往更希望瞭解作為MySQL企業級資料庫應用的第一儲存引擎—InnoDB。我想在本書中,他們可以找到他們想要的內容。
再強調一遍,任何時候WHY都比WHAT重要。本書從原始碼的角度對InnoDB的儲存引擎的整個體系架構的各個組成部分進行了系統的分析和講解,剖析了InnoDB儲存引擎的核心實現和工作機制,相信這在其他書中是很難找到的。
本書面向的讀者
《MySQL技術內幕:InnoDB儲存引擎》不是一本面向應用的資料庫類書籍,也不是一本參考手冊,更不會教你如何在MySQL中使用SQL語句。本書面向那些使用MySQL InnoDB儲存引擎作為資料庫後端開發應用程式的開發者和有一定經驗的MySQL DBA。書中的大部分例子都是用SQL語句來展示關鍵特性的,如果想透過本書來了解如何啟動MySQL,如何配置Replication環境,可能並不能如願。不過,透過本書,你將理解InnoDB儲存引擎是如何工作的,它的關鍵特性的功能和作用是什麼,以及如何正確地配置和使用這些特性。如果想更好地使用InnoDB儲存引擎,如果想讓你的資料庫應用獲得更好的效能,就請閱讀本書。從某種程度上講,技術經理或總監也要非常瞭解資料庫,要知道資料庫對於企業的重要性。如果技術經理或總監想安排員工參加MySQL資料庫技術方面的培訓,完全可以利用本書來“充電”,相信你一定不會失望的。
要想更好地學習本書,要求具備以下條件:
- 掌握SQL。
- 掌握基本的MySQL操作。
- 接觸過一些高階語言,如C、C++、Python或Java。
- 對一些基本演算法有所瞭解,因為本書會分析InnoDB儲存引擎的部分原始碼,如果你能看懂這些程式碼,這會對你的理解非常有幫助。
如何閱讀本書
本書一共有10章,每一章都像一本“迷你書”,可以單獨成冊,也就說,你完全可以從書中任何一章開始閱讀。例如,要了解第10章中的InnoDB原始碼編譯和除錯的知識,就不必先去閱讀第3章有關檔案的知識。當然,如果你不太確定自己是否已經對本書所涉及的內容已經完全掌握,建議你係統地閱讀本書。本書不是一本入門書,不會一步步引導你去如何操作。倘若你尚不瞭解InnoDB儲存引擎,本書對你來說可能就顯得沉重了些,建議你先查閱官方的API文件,大致掌握InnoDB的基礎知識,然後再來閱讀本書,相信你會領略到不同的風景。
需要特別說明的是,附錄B~D詳細給出了Master Thread、Doublewrite、雜湊演算法和雜湊表的原始碼,前面學習了這些理論知識,再適當地閱讀這些原始碼,相信有經驗的DBA可以更好地掌握和理解InnoDB儲存引擎的本質。為了便於大家閱讀,本書在提供原始碼下載的同時也將原始碼附在了書中,因此佔去了一些篇幅,還請大家理解。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-697420/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- 《MySQL技術內幕:InnoDB儲存引擎》連載MySql儲存引擎
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《二》InnoDB儲存引擎MySql儲存引擎筆記
- MySQL技術內幕 InnoDB儲存引擎 第2版MySql儲存引擎
- Mysql技術內幕InnoDB儲存引擎--《九》效能調優MySql儲存引擎
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《四》表MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《六》鎖MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《一》Mysql體系結構和儲存引擎MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《三》檔案MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《七》事務MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《五》索引與演算法MySql儲存引擎筆記索引演算法
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《八》備份與恢復MySql儲存引擎筆記
- InnoDB儲存引擎——Checkpoint技術儲存引擎
- 高階程式設計師——MySQL技術內幕 InnoDB儲存引擎(4):索引與演算法程式設計師MySql儲存引擎索引演算法
- MySQL InnoDB儲存引擎MySql儲存引擎
- 【Mysql技術內幕筆記--1】--Mysql體系結構和儲存引擎MySql筆記儲存引擎
- Mysql技術內幕之InnoDB鎖探究MySql
- MySQL InnoDB 儲存引擎探祕MySql儲存引擎
- MyISAM 儲存引擎,Innodb 儲存引擎儲存引擎
- TiDB 技術內幕 - 說儲存TiDB
- Innodb儲存引擎儲存引擎
- MySQL InnoDB儲存引擎體系結構MySql儲存引擎
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- InnoDB儲存引擎——表儲存引擎
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎
- MySQL儲存引擎MyISAM與InnoDB的優劣MySql儲存引擎
- Mysql核心:INNODB儲存引擎--《十一》Insert BufferMySql儲存引擎
- MySQL核心InnoDB儲存引擎(卷1)筆記MySql儲存引擎筆記
- Mysql innodb儲存引擎的效能最佳化MySql儲存引擎
- InnoDB儲存引擎簡介儲存引擎
- InnoDB儲存引擎檔案儲存引擎
- 總結MySQL儲存引擎MyISAM與InnoDB區別MySql儲存引擎
- 十八、Mysql儲存引擎並不只有MyISAM、InnoDB——精髓MySql儲存引擎
- MySQL高階10-InnoDB引擎儲存架構MySql架構
- MySQL 5.6 InnoDB儲存引擎體系結構圖MySql儲存引擎
- openGauss儲存技術(一)——行儲存引擎儲存引擎
- InnoDB儲存引擎——兩次寫儲存引擎