我不生產知識,只是知識的搬運工。寫做本小冊的時間主要用在了兩個方面:html
搞清楚事情的本質是什麼。mysql
這個過程就是研究源碼、書籍和資料。git
如何把我已經知道的知識表達出來。程序員
這個過程就是我不停的在地上走過來走過去,梳理知識結構,斟酌用詞用句,不停的將已經寫好的文章推倒重來,只是想給你們一個不錯的用戶體驗。github
這兩個方面用的時間基本上是一半一半吧,在搞清楚事情的本質是什麼階段,除了直接閱讀MySQL
的源碼以外,查看參考資料也是一種比較偷懶的學習方式。本書只是MySQL
進階的一個入門,想了解更多關於MySQL
的知識,你們能夠從下邊這些資料裏找點靈感。sql
MySQL官方文檔:https://dev.mysql.com/doc/refman/5.7/en/數據庫
MySQL
官方文檔是寫做本書時參考最多的一個資料。說實話,文檔寫的很是通俗易懂,惟一的缺點就是太長了,致使你們看的時候無從下手。ruby
MySQL Internals Manual:https://dev.mysql.com/doc/internals/en/運維
介紹MySQL如何實現各類功能的文檔,寫的比較好,可是太少了,有不少章節直接跳過了。ide
何登成的github:https://github.com/hedengcheng/tech
登博的博客很是好,對事務、優化這討論的細節也很是多,不過因爲大可能是PPT結構,字太少,對上下文不清楚的同窗可能會一臉懵逼。
orczhou的博客:http://www.orczhou.com/
Jeremy Cole的博客:https://blog.jcole.us/innodb/
Jeremy Cole大神不只寫做了innodb_ruby
這個很是棒的解析InnoDB
存儲結構的工具,還對這些存儲結構寫了一系列的博客,在我幾乎要放棄深刻研究表空間結構的時候,是他老人家的博客把我又從深淵裏拉了回來。
那海藍藍(李海翔)的博客:https://blog.csdn.net/fly2nn
taobao月報:http://mysql.taobao.org/monthly/
由於MySQL的源碼很是多,常常讓你們無從下手,而taobao月報就是一個很是好的源碼閱讀指南。
吐槽一下,這個taobao月報也只能看成源碼閱讀指南看,若是真的不看源碼光看月報,那隻能看成天書看,十有八九被繞進去出不來了。
MySQL Server Blog:http://mysqlserverteam.com/
MySQL team的博客,一手資料,在我不知道看什麼的時候給了不少啓示。
mysql_lover的博客:https://blog.csdn.net/mysql_lover/
Jørgen's point of view:https://jorgenloland.blogspot.com/
mariadb的關於查詢優化的文檔:https://mariadb.com/kb/en/library/query-optimizations/
不得不說mariadb的文檔相比MySQL的來講就很是有藝術性了(裏邊兒有不少漂亮的插圖),我很懷疑MySQL文檔是程序員直接寫的,mariadb的文檔是產品經理寫的。當咱們想研究某個功能的原理,在MySQL文檔乾巴巴的說明中找不到頭腦時,能夠參考一下mariadb娓娓道來的風格。
Reconstructing Data Manipulation Queries from Redo Logs:https://www.sba-research.org/wp-content/uploads/publications/WSDF2012_InnoDB.pdf
關於InnoDB事務的一個PPT:https://mariadb.org/wp-content/uploads/2018/02/Deep-Dive_-InnoDB-Transactions-and-Write-Paths.pdf
非官方優化文檔:http://www.unofficialmysqlguide.com/optimizer-trace.html
這個文檔很是好,很是很是好~
MySQL8.0的源碼文檔:https://dev.mysql.com/doc/dev/mysql-server
《數據庫查詢優化器的藝術》李海翔著
你們能夠把這本書看成源碼觀看指南來看,不過講的是5.6的源碼,5.7裏重構了一些,不過大致的思路仍是能夠參考的。
《MySQL運維內參》周彥偉、王竹峯、強昌金著
內參裏有許多代碼細節,是一個閱讀源碼的比較好的指南。
《Effectiv MySQL:Optimizing SQL Statements》Ronald Bradford著
小冊子,能夠一口氣看完,對了解MySQL查詢優化的大概內容仍是有些好處滴。
《高性能MySQL》瓦茨 (Baron Schwartz) / 扎伊採夫 (Peter Zaitsev) / 特卡琴科 (Vadim Tkachenko) 著
經典,對於第三版的內容來講,若是把第2章和第3章的內容放到最後就更好了。不過做者更願意把MySQL看成一個黑盒去講述,主要是說明了如何更好的使用MySQL這個軟件,這一點從第二版向第三版的轉變上就能夠看出來,第二版中涉及的許多的底層細節都在第三版中移除了。總而言之它是MySQL進階的一個很是好的入門讀物。
《數據庫事務處理的藝術》李海翔著
同《數據庫查詢優化器的藝術》。
《MySQL技術內幕 : InnoDB存儲引擎 第2版》姜承堯著
學習MySQL內核進階閱讀的第一本書。
《MySQL技術內幕 第5版》 Paul DuBois 著
這本書是對於MySQL使用層面的一個很是詳細的介紹,也就是說它並不涉及MySQL的任何內核原理,甚至連索引結構都懶得講。像是一個老媽子在給你不停的嘮叨吃飯怎麼吃,喝水怎麼喝,怎麼上廁所的各類絮叨。總體風格比較像MySQL的官方文檔,若是有想從使用層面從頭瞭解MySQL的同窗能夠嘗試的看看。
《數據庫系統概念》(美)Abraham Silberschatz / (美)Henry F.Korth / (美)S.Sudarshan 著
這本書對於入門數據庫原理來講很是好,不過看起來學術氣味比較大一些,畢竟是一本正經的教科書,裏邊有很多的公式啥的。
《事務處理 概念與技術》Jim Gray / Andreas Reuter 著
這本書只是象徵性的看了1~5章,說實話看不太懂,老是get不到做者要表達的點。不過據說業界很是推崇這本書,而恰巧我也看過一點,就寫上了,有興趣的同窗能夠去看看。
上邊盡說這些參考資料如何如何好了,主要是由於在我寫做過程當中的確參考到了,沒有這些資料可能三五年都沒法把小冊寫完。可是除了MySQL的文檔以及《高性能MySQL》、《Effectiv MySQL:Optimizing SQL Statements》這兩本書以外,其他的資料在大部分時間都是看的我頭暈眼花,四肢乏力,不看個十遍八遍基本沒法理清楚做者想要表達的點,這也是我寫本小冊的初衷---讓天下沒有難學的知識。
但願這是各位2019年最爽的一次知識付費,若是以爲有點兒物超所值?給個打賞唄~