MySQL 运维实战课
张新铭(俊达)
云掣科技资深数据库专家,前淘宝网、支付宝数据库专家
1188 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 47 讲/共 50 讲
MySQL 运维实战课
15
15
1.0x
00:00/00:00
登录|注册

45|MySQL源码分析和GDB调试器的应用

你好,我是俊达。
之前在评论区有同学留言问是否能加一讲源代码调试的内容。考虑到这个专栏中有相当多的篇幅是讲 MySQL 和 InnoDB 的内部实现机制,而我自己在整理这些内部原理时,也参考了大量的 MySQL 源码,有时也会用 GDB 来调试跟踪代码的执行,因此在这一讲中,我们就来聊聊 MySQL 源码分析和 GDB 在源码分析中的一些使用场景。
这里我们只讨论 MySQL 的源码分析,不涉及到怎么修改 MySQL 源码来实现一些定制化的功能。

MySQL 源码介绍

这一讲中,我们就以当前 8.0 系列中最新的 Release 版本 8.0.40 为例,下载代码并解压。我们先简单看一下 MySQL 源码文件的组织(只是为了看结构,下面的输出中,把很多内容删减掉了)。
# tree -d -L 2
...
├── include
├── mysys
├── plugin
│ ├── auth
│ ├── clone
...
│ ├── group_replication
...
│ ├── semisync
│ └── x
......
├── sql
│ ├── auth
│ ├── binlog
│ ├── changestreams
│ ├── conn_handler
│ ├── containers
│ ├── daemon_proxy_keyring
│ ├── dd
│ ├── examples
│ ├── gis
│ ├── histograms
│ ├── iterators
│ ├── join_optimizer
│ ├── locks
│ ├── memory
│ ├── partitioning
│ ├── protobuf
│ ├── raii
│ ├── range_optimizer
│ ├── server_component
│ └── xa
├── sql-common
│ └── oci
├── storage
......
│ ├── innobase
│ └── temptable
└── vio
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 本文介绍了MySQL 8.0.40版本的源码分析和GDB调试器的应用,重点在MySQL源码文件的组织结构和重要目录的介绍。 2. 作者详细介绍了MySQL源码中的一些重要目录,如plugin、sql、storage/innobase目录,并解释了这些目录中子目录的功能和代码结构。 3. 文中介绍了一些具体的源码分析方法,如通过搜索和分析使用常量的代码来理解字段的作用,以及通过设置断点来观察事务执行过程中生成的Redo日志。 4. 作者强调了本文只讨论MySQL的源码分析,不涉及如何修改MySQL源码来实现定制化功能。 5. 文章内容涉及的重点包括MySQL源码的组织结构、InnoDB存储引擎的代码结构和功能、以及源码分析的方法和技巧。 6. 本文为读者提供了对MySQL源码分析和GDB调试器应用的一些基础知识,有助于读者更深入地理解MySQL内部实现机制和进行源码调试。 7. 通过本文的介绍,读者可以了解到MySQL源码分析的一些基本路径和方法,以及InnoDB存储引擎中各个模块的功能和作用。 8. 本文为对MySQL源码感兴趣的读者提供了一些有益的指导和参考,有助于他们更好地理解和应用MySQL源码分析和调试技术。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部