本地源码探索参考Mysql官方docs和周彦伟的《运维内参》这本书 和姜承尧的《MySQL内核InnoDB存储引擎》此书
源码目录
- BUILD
- CMakeLists.txt
- client
- cmake
- cmd-line-utils
- dbug
- extra
- include
- libbinlogevents
- libmysql
- libmysqld
- mysql-test
- mysys
- plugin
- regex
- scripts 系统工具脚本 比如mysql_install_db mysqld_safe mysql_multi
- sql 服务端主要代码实现
- sql-common 存储client和server通用的代码
- storage (存储引擎)
- archive
- blackhole
- csv
- federated
- heap
- myisam
- myisammgr
- NDB
- partition
- perfschema perform-schema这个只读的dba统计库实现
- innobase(最重要的innodb引擎)
- btr B+树功能实现,搜索、增删改查
- buf buffer实现, 载入、淘汰、刷盘等
- dict innodb的数据字典实现和内存管理
- fil 物理文件的读写、内存对象管理、文件扩展等
- fsp 物理文件内部空间的管理(实际上就是包括了各种表空间的试下),比如 数据段(segment)、物理页面、簇
- ibuf 对insert-buffer的实现,新版本变成了********change buffer
- lock 行锁、表锁**实现****
- log Innodb所有相关日志功能,包括写日志、数据恢复(这么说也包括redo和undo实现?)
- mem Innodb的内存管理
- mtr 连接上层事务和下层物理文件以及日志的桥梁
- os 针对不同os的(同步、文件、现成 等)实现
- page 数据页的实现
- pars 语法、语义分析器
- que 状态机执行器实现
- rem 物理文件的管理, 如记录比较、转换计算等
- srv 系统后台实现, 如********master进程
- **sync 读写同步实现 , **等待队列、读写锁、mutex等实现
- trx 事务实现,包括MVCC、回滚段、回滚记录、回滚提交
- ut 经典算法实现,如链表、红黑树、堆排序等
- strings 字符串操作内部常用函数strmov、strappend、my_atof等
- support-files my.cnf等示例文件以及编译所需部分工具
- unittest 单元测试
- vio 虚拟网络io 对不同平台、不同协议的网络通信API封装******
- win
- zlib 压缩算法库