我不生产知识,只是知识的搬运工。写做本小册的时间主要用在了两个方面:html
搞清楚事情的本质是什么。mysql
这个过程就是研究源码、书籍和资料。git
如何把我已经知道的知识表达出来。程序员
这个过程就是我不停的在地上走过来走过去,梳理知识结构,斟酌用词用句,不停的将已经写好的文章推倒重来,只是想给你们一个不错的用户体验。github
这两个方面用的时间基本上是一半一半吧,在搞清楚事情的本质是什么阶段,除了直接阅读MySQL
的源码以外,查看参考资料也是一种比较偷懒的学习方式。本书只是MySQL
进阶的一个入门,想了解更多关于MySQL
的知识,你们能够从下边这些资料里找点灵感。sql
MySQL官方文档:dev.mysql.com/doc/refman/…数据库
MySQL
官方文档是写做本书时参考最多的一个资料。说实话,文档写的很是通俗易懂,惟一的缺点就是太长了,致使你们看的时候无从下手。ruby
MySQL Internals Manual:dev.mysql.com/doc/interna…markdown
介绍MySQL如何实现各类功能的文档,写的比较好,可是太少了,有不少章节直接跳过了。运维
A Critique of ANSI SQL Isolation Levels:www.microsoft.com/en-us/resea…
深刻分析隔离级别的一篇论文,特经典。
何登成的github:github.com/hedengcheng…
登博的博客很是好,对事务、优化这讨论的细节也很是多,不过因为大可能是PPT结构,字太少,对上下文不清楚的同窗可能会一脸懵逼。
orczhou的博客:www.orczhou.com/
Jeremy Cole的博客:blog.jcole.us/innodb/
Jeremy Cole大神不只写做了innodb_ruby
这个很是棒的解析InnoDB
存储结构的工具,还对这些存储结构写了一系列的博客,在我几乎要放弃深刻研究表空间结构的时候,是他老人家的博客把我又从深渊里拉了回来。
那海蓝蓝(李海翔)的博客:blog.csdn.net/fly2nn
taobao月报:mysql.taobao.org/monthly/
由于MySQL的源码很是多,常常让你们无从下手,而taobao月报就是一个很是好的源码阅读指南。
吐槽一下,这个taobao月报也只能看成源码阅读指南看,若是真的不看源码光看月报,那只能看成天书看,十有八九被绕进去出不来了。
MySQL Server Blog:mysqlserverteam.com/
MySQL team的博客,一手资料,在我不知道看什么的时候给了不少启示。
mysql_lover的博客:blog.csdn.net/mysql_lover…
Jørgen's point of view:jorgenloland.blogspot.com/
mariadb的关于查询优化的文档:mariadb.com/kb/en/libra…
不得不说mariadb的文档相比MySQL的来讲就很是有艺术性了(里边儿有不少漂亮的插图),我很怀疑MySQL文档是程序员直接写的,mariadb的文档是产品经理写的。当咱们想研究某个功能的原理,在MySQL文档干巴巴的说明中找不到头脑时,能够参考一下mariadb娓娓道来的风格。
Reconstructing Data Manipulation Queries from Redo Logs:www.sba-research.org/wp-content/…
关于InnoDB事务的一个PPT:mariadb.org/wp-content/…
非官方优化文档:www.unofficialmysqlguide.com/optimizer-t…
这个文档很是好,很是很是好~
MySQL8.0的源码文档:dev.mysql.com/doc/dev/mys…
《数据库查询优化器的艺术》李海翔著
你们能够把这本书看成源码观看指南来看,不过讲的是5.6的源码,5.7里重构了一些,不过大致的思路仍是能够参考的。
《MySQL运维内参》周彦伟、王竹峰、强昌金著
内参里有许多代码细节,是一个阅读源码的比较好的指南。
《Effective 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》这两本书以外,其他的资料在大部分时间都是看的我头晕眼花,四肢乏力,不看个十遍八遍基本没法理清楚做者想要表达的点,这也是我写本小册的初衷---让天下没有难学的知识。