Mysql8.0源码阅读建议
目的
作为一个后台开发者,我觉得了解数据库的运作原理是非常有必要的,而Mysql数据库就是开源数据库之中的佼佼者,这里列出我这2个月以来的一些心德体会,以及自己用到的工具
官方文档
仔细的阅读官方的技术文档是十分有必要的,mysql8地址:dev.mysql.com/doc/refman/8.0/en/
我觉得官方的文档写的很好,里面会提到用到的一些技术
举个例子 dev.mysql.com/doc/refman/8.0/en/se...
这里列出了mysql8的所有的系统变量,比如
对于每个系统变量,你可以搜索源代码,看在哪里用到了,比如 group_replication_recovery_ssl_ca
源码地址
github地址: github.com/mysql/mysql-server
源码结构
下面是mysql8的源码结构,这里面最重要的就是sql和storage,mysql8采用的是插件化的组织架构
源码阅读工具
我建议采用vscode,另外需要装一个书签插件,截图如下:
书签效果如下:
当然了,C++的插件也是必不可少的
cmake插件
笔记工具的话,我建议微软的onenote,比如我的:
必要技能
为了读懂mysql8的代码,你需要掌握的开发语言C/C++,因为mysql8采用的编译工具为cmake,所以你也需要懂cmake的基本操作,另外就是bison,yacc等
源代码编译
这里,建议参考:dev.mysql.com/doc/refman/8.0/en/so...
比如我的编译选项:
cmake .. -DWITH_DEBUG=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost -DCMAKE_INSTALL_PREFIX=./compiled -DWITH_UNIT_TESTS=OFF
代码调试
gdb基本是linux开发必备的调试工具,比如对于我当前的开发环境来说,启动gdb,调试mysql的参数如下:
启动之后
关于gdb的具体操作,可以网上查,这里不再详述
个人建议
mysql8的代码很复杂,但是也很有条理,读懂的话是很有难度的,所以需要一定的耐心,建议多对照官网的文档看,相信你会有所收获
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: