推薦一個(gè)講解MySQL的好書(shū)--MySQL是怎樣運(yùn)行的,作者是小孩子4919,這是目前為止筆者讀過(guò)的MySQL方面最好的書(shū).

推薦理由
筆者之前翻看過(guò)(MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎)和(高性能MySQL),前者對(duì)InnoDB的技術(shù)要點(diǎn)講解的很深.后者則是流水賬式的介紹MySQL的各個(gè)模塊. 彼時(shí)筆者的背景知識(shí)極為有限:
- InnoDB底層是B+樹(shù)
- 事務(wù)的四種隔離級(jí)別,臟讀,不可重復(fù)讀,幻讀
- 獨(dú)占鎖和共享鎖
所以兩者都不適合.筆者需要的是這樣的一本書(shū)
如何正確啟動(dòng)MySQL,擺脫因啟動(dòng)選項(xiàng)/系統(tǒng)變量/字符集等導(dǎo)致的莫名其妙問(wèn)題.
InnoDB為何使用B+樹(shù)而非其他結(jié)構(gòu),如果有演化過(guò)程,是怎么樣的?
一條記錄在內(nèi)存&存儲(chǔ)中是如何存儲(chǔ)的?這些記錄又是如何關(guān)聯(lián)的?
為什么會(huì)有隔離級(jí)別,它們又是怎么實(shí)現(xiàn)的?
舉例講解一個(gè)事務(wù)的執(zhí)行過(guò)程中,鎖是如何生效的.
很幸運(yùn),筆者發(fā)現(xiàn)了<MySQL是怎么運(yùn)行的>,它達(dá)成了上述需求的90%.如果你跟筆者有類似的問(wèn)題,那么讀下這本書(shū)吧!
重點(diǎn)閱讀部分
推薦大家重點(diǎn)閱讀下面章節(jié)
第三章 字符集和比較規(guī)則
從此跟亂碼say goodbye
第五章&第六章 InnoDB數(shù)據(jù)頁(yè)結(jié)構(gòu)&B+樹(shù)索引
了解記錄在內(nèi)存中的結(jié)構(gòu),B+樹(shù)的演變由來(lái),以及為什么要使用索引--沒(méi)有索引就要掃全表呀!
第十七章 Buffer Pool
緩沖池提高了性能,也帶來(lái)了問(wèn)題.
第十九章 redo日志
做完的事情說(shuō)什么也不能丟失.
第二十一章 事務(wù)隔離級(jí)別和MVCC
第一次聽(tīng)說(shuō)臟寫(xiě)和Read View.看完之后才知道事務(wù)隔離級(jí)別的實(shí)現(xiàn)差異.
祝大家有一個(gè)愉快的閱讀體驗(yàn)~