Mysql8.0源码阅读建议

目的

作为一个后台开发者,我觉得了解数据库的运作原理是非常有必要的,而Mysql数据库就是开源数据库之中的佼佼者,这里列出我这2个月以来的一些心德体会,以及自己用到的工具

官方文档

仔细的阅读官方的技术文档是十分有必要的,mysql8地址:dev.mysql.com/doc/refman/8.0/en/
我觉得官方的文档写的很好,里面会提到用到的一些技术

Mysql8.0源码阅读建议

举个例子 dev.mysql.com/doc/refman/8.0/en/se...

这里列出了mysql8的所有的系统变量,比如

Mysql8.0源码阅读建议

对于每个系统变量,你可以搜索源代码,看在哪里用到了,比如 group_replication_recovery_ssl_ca

Mysql8.0源码阅读建议

Mysql8.0源码阅读建议

源码地址

github地址: github.com/mysql/mysql-server

源码结构

下面是mysql8的源码结构,这里面最重要的就是sql和storage,mysql8采用的是插件化的组织架构

Mysql8.0源码阅读建议

源码阅读工具

我建议采用vscode,另外需要装一个书签插件,截图如下:

Mysql8.0源码阅读建议

书签效果如下:

Mysql8.0源码阅读建议

当然了,C++的插件也是必不可少的

Mysql8.0源码阅读建议

cmake插件

Mysql8.0源码阅读建议

笔记工具的话,我建议微软的onenote,比如我的:

Mysql8.0源码阅读建议

Mysql8.0源码阅读建议

必要技能

为了读懂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的参数如下:

Mysql8.0源码阅读建议

启动之后

Mysql8.0源码阅读建议

关于gdb的具体操作,可以网上查,这里不再详述

个人建议

mysql8的代码很复杂,但是也很有条理,读懂的话是很有难度的,所以需要一定的耐心,建议多对照官网的文档看,相信你会有所收获

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信:okayGoHome
Dennis_Ritchie
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

恰好我都会一点 :smirk:

cmake编译

bison语法分析

yacc词法分析

这些都不算关键的吧!关键是数据结构与算法

1年前 评论
jiangjun

老哥,厉害了

1年前 评论

在学c

1年前 评论

bison 语法分析

yacc 词法分析

这两个我都会一点,看到 cmake 的时候,就放弃了,后来就转战 rust 了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!