第26章 写作本书时用到的一些重要的参考资料
感谢#
我不生产知识,只是知识的搬运工。写作本小册的时间主要用在了两个方面:
搞清楚事情的本质是什么。
这个过程就是研究源码、书籍和资料。
如何把我已经知道的知识表达出来。
这个过程就是我不停的在地上走过来走过去,梳理知识结构,斟酌用词用句,不停的将已经写好的文章推倒重来,只是想给大家一个不错的用户体验。
这两个方面用的时间基本上是一半一半吧,在搞清楚事情的本质是什么阶段,除了直接阅读MySQL的源码之外,查看参考资料也是一种比较偷懒的学习方式。本书只是MySQL进阶的一个入门,想了解更多关于MySQL的知识,大家可以从下面这些资料里找点灵感。
一些链接#
MySQL官方文档: https://dev.mysql.com/doc/refman/5.7/en/
MySQL官方文档是写作本书时参考最多的一个资料。说实话,文档写的非常通俗易懂,唯一的缺点就是太长了,导致大家看的时候无从下手。
MySQL Internals Manual: https://dev.mysql.com/doc/internals/en/
介绍MySQL如何实现各种功能的文档,写的比较好,但是太少了,有很多章节直接跳过了。
何登成的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/
- Jorgen’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运维内参》周彦伟、王竹峰、强昌金著
















