mysql源码笔记【目录结构总结】

369 阅读2分钟

本地源码探索参考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 压缩算法库