[mysql] internals的书单

博客首页 » mysql internals的书单

发布于 20 Feb 2015 04:45
标签 blog
http://www.douban.com/doulist/983358/
http://www.douban.com/doulist/247779/

是在知乎一个很中肯的回复里看到的,只是没有多少人关注,可惜了。
http://www.zhihu.com/question/22364529

如何才能让自己看懂MySQL源码,并且能够自己写出相应的patch?
请有经验的高手回答下,如何才能让自己看懂MySQL源码,并且能够自己写出相应的patch?就是说如果才能做一个NB的MySQL的开发的DBA,需要懂什么语言?学习哪些东西才能让自己达到能给MySQL打补丁,定制MySQL,并且能自己开发出业务想要的功能?PS:我是搞Oracle的

hoterran
楼主,我以前也是 Oracle dba,后来做过半年的 MySQL 源码的开发。
关于 mysql 的源码的书,我整理过一个豆列 ,mysql source code 可以帮你入门。
知道如何为添加个函数,加个命令,加个 plugin,replication 的细枝末节。

但如果要真正的掌握他的代码,需要很长的时间。MySQL 加上 Innodb 的代码有 140w 行代码 ,有且是你要完全看懂 Innodb 需要啃下 事务处理 这本书,这本书比较难以理解。

之外 Mysql Server 的代码虽然多,但是比较好理解了,我看过下面这些:

1. 网络模型,MySQL 的网络模型太老了, one connection per thread,代码很简单。
2. 协议解析,MySQL 的 协议还算比较简单的,但是设计的 prepare 的协议就要花点时间,我写个一些分析的文章和图,网上你搜索下。这里你要花时间把 mysql client 这个客户端的代码都看看,这样对你往后无论开发 jdbc还是 libmysqlclient 的项目都有帮助。
3. SQL 解析,咳咳,不好意思大难题了。不过还好对于编译原理的知识你只需要了解前端的词法解析和 yacc 的使用即可,你可以参考 flex and bison 这本书 ,仅仅需要看懂 yy 和 lex 文件即可,yy 比较长,但里面涵盖了所有的 MySQL 所支持的 sql 的语法。我也写过一个简单的 sql parser,在我的 github 上。
4.replication,这个不复杂就几个文件。
还有一些忘记了,基本上我就看过这些,因为 MySQL 实在太大了。

另外淘宝几位同事的博客应该多关注一下,他们是专门的 MySQL 开发人员。


本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用,仅有一个特殊要求,请用链接方式注明文章引用出处及作者。请协助维护作者合法权益。


系列文章

文章列表

  • mysql internals的书单

这篇文章对你有帮助吗,投个票吧?

rating: 0+x

留下你的评论

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License