《怎么学习MySQL源码》公开课资料分享
来源:互联网 发布:移动网络电视好不好 编辑:程序博客网 时间:2024/06/06 01:28
分享嘉宾 :王松磊,现任职于UCloud,从事MySQL数据库内核研发工作,主要负责UCloud云数据库UDB的内核故障排查及新特性的研发。
分享主题:《怎么学习MySQL源码》,主要介绍MySQL架构,及MySQL代码结构、获取和编译方法;并以MySQL插件开发为例,演示如何开发源码。
课上,王老师非常详细地介绍了源码的学习方法,并分享了很多相关资料。
提示:PPT的内容有限,建议直接观看视频,效果更佳!
1、资料发布
本次公开课的PPT、视频均已上传到百度云盘,链接: https://pan.baidu.com/s/1gfEbHC3。扫描下方二维码识别,或者点击文末“阅读原文”直达下载地址,欢迎转存及转发。
2、你问我答
A. MySQL代码量较大,作为一个新人怎么开始做MySQL代码学习?
答:学习代码, 需要你有C和C++的基础,能读懂基础函数的代码、数据库的基础理论知识,知道事务、日志、ACID等基础概念;同时要求你了解MySQL的基本架构,知道MySQL分为哪些模块。
学习时:
首先,建议有条件的同学,阅读https://dev.mysql.com/doc/internals/en/ 对mysql源码大概结构有个基础概念;
其次,学习编译、安装以及使用gdb调试MySQL;
最后,选择自己感兴趣或者工作需要的模块,先学习使用方法,然后从基本功能开始学习源码。
如果暂时没有目标,建议可以先学习MySQLl的基本启动流程、连接处理、命令处理等。
B. 想要生成coredump文件就要在启动时加上--core-file选项,建议这么做么?另外,意外崩溃时生成coredump文件,对于不熟悉源码的人怎么去检查、排查问题呢?
答:调试和学习使用的MySQL,建议添加该选项,并编译成debug版本;如果不熟悉源码,发生coredump后,根据coredump文件定位发生问题的函数和模块,然后根据实际进行的操作进行排查。另外可以借助网络,比如去stackoverflow上查找类似的问题或者直接提问。
C.从事MySQL源码这方面工作,对linux C这块有什么要求么?
答: 首先C语言的基础是要有的。MySQL有很多版本,包括linux、windows,可能要根据实际的需要来选择不同的平台。但源码实现的原理不会有太大的差别。
D. MySQL全部是sleep状态,但是LSN一直涨,请问下是什么原因?
答:这个要具体情况具体分析,我们能查看到的Last checkpoint本身就可能落后于Log sequence number,然后进行追赶。如果确定mysql未做任何操作,而redo在不断的生成,可以使用perf或者pstack查看一下mysqld是否有异常。
E. 作为运维DBA,学习源码对工作上有哪些实际帮助?
答:运维dba学习源码本身就有天然的优势,很多源码专家都是由DBA转型的。
是否对工作有实际的帮助,我觉得是见仁见智的问题,个人觉得了解原理可以更好帮助运维,比如设置sync_binlog和innodb_flush_log_at_trx_commit为1可以保证宕机时不丢数据,但是如果了解原理,可以延伸到更多的知识,比如什么时候可以不设置成双1,不设值成双1怎么保证数据的一致,数据丢失是否可以追补回来等等。
但是另一方面,学习源码本身就是要消耗很多的时间,可能会消耗掉很多工作外的时间,即使对运维有帮助,也不是立竿见影的,是一个技术沉淀的过程,需要自己去做权衡。
3、分享内容
- 《怎么学习MySQL源码》公开课资料分享
- 周四见 |《怎么学习MySQL源码》公开课分享
- 《无坑不MySQL》公开课资料分享
- 《MySQL复制大观园》公开课资料分享~
- 喊老铁一起听课啦 |《怎么学习MySQL源码》公开课
- 《领略debug MySQL的魅力》公开课资料分享
- 《Python大神晋级之路》公开课资料分享(附赠学习资料)
- MySQL相关学习资料分享
- 斯坦福大学机器学习公开课资料
- 《经典SQL优化实例剖析》公开课资料分享
- Mysql DBA 教程学习资料分享
- 周四见|《MySQL复制大观园》公开课分享
- 周四见|《领略debug MySQL的魅力》公开课分享
- 周四见|《领略debug MySQL的魅力》公开课分享
- 《MySQL的高可用架构》公开课内容分享
- 周四见 | 《MySQL高可用架构》公开课分享
- 分享一些mysql资料
- MySQL 资料分享
- 曝!和叶师傅**的正确姿势
- 二分法查找时间复杂度计算
- 听说JOIN的列类型一定要一样?
- 扎心,MySQL表分区太多了
- 【硬件运维●倚天剑】IPMITOOL解决服务器底层维护难题
- 《怎么学习MySQL源码》公开课资料分享
- 喊老铁一起听课啦 |《怎么学习MySQL源码》公开课
- MySQL 5.7临时表空间怎么玩才能不掉坑里
- FAQ系列
- 周四见 |《怎么学习MySQL源码》公开课分享
- 《 金融级MySQL高可用方案选型》公开课内容分享
- 剧透版:周四见 |《 金融级MySQL高可用方案选型》
- UTF8字符集的表怎么直接转UTF8MB4?
- 知数堂干货资料合集(2017年上半年总结篇)