mysql server 源码分析_MySQL源码分析..ppt

MySQL源码分析——代码结构与基本流程 彭立勋 Alibaba DBA Team Topics MySQL基本架构 源码目录结构 核心类库与函数 主要模块 数据流 MySQL基本架构 MySQL目录结构(1) BUILD: 内含在各个平台、各种编译器下进行编译的脚本。如compile-pentium-debug表示在pentium架构上进行调试编译的脚本。 client: 客户端工具,如mysql,mysqladmin之类。 cmd-line-utils: readline,libedit工具。 config: 给aclocal使用的配置文件。 dbug: 提供一些调试用的宏定义。 Docs: MySQL在不同平台下的参考手册 extra: 提供innochecksum,resolveip等额外的小工具。 include: 包含的头文件 libmysql: 库文件,生产libmysqlclient.so。 libmysql_r: 线程安全的库文件,生成libmysqlclient_r.so。 libmysqld: 嵌入式MySQL Server库. libservices: 5.5.0中新加的目录,实现了打印功能。 MySQL目录结构(2) man: 适合man命令查看的帮助文件。 mysql-test: mysqld的测试工具套件。 mysys: 为实现跨平台,MySQL自己实现了一套常用的数据结构和算法,如string, hash等。还包含一些底层函数的跨平台封装,一般以my_开头。 netware: 在netware平台上进行编译时需要的工具和库。 plugin: MySQL 5.1开始支持一个插件式API接口,不需要重启mysqld即可动态载入插件,FullText就是一个例子。 pstack: GNU异步栈追踪工具。 regex: 正则表达式实现(来自多伦多大学Henry Spencer大牛的源码)。 scripts: 提供脚本工具,如mysql_install_db/mysqld_safe等。 server-tools: 包含instance_manager子目录,负责实例的本地和远程管理。 MySQL目录结构(3) sql: MySQL Server主要代码,将会生成mysqld文件。 sql-bench: 一些基准测试代码代码,主要是Perl程序(虽然后缀是sh)。 sql-common: 存放部分服务器端和客户端都会用到的代码,有些地方的同名文件是这里lin过去的。 storage: 存储引擎所在目录。 strings: string库,包含很多字符串处理的函数。 support-files: my.cnf示例配置文件及编译所需的一些工具。 tests: 测试文件所在目录。 unittest: 单元测试文件。 vio: 虚拟io系统,是对network io的封装,把不同的协议封装成统一的IO函数。 win: 在windows平台编译所需的文件和一些说明。 zlib: zlib算法库(GNU) InnoDB目录结构(1) btr: B+树的实现 buf: 缓冲池的实现,包括LRU算法,Flush刷新算法等 dict: InnoDB内存数据字典的实现 dyn: InnoDB动态数组的实现 fil: InnoDB文件数据结构以及对于文件的一些操作 fsp: 对InnoDB物理文件的管理,如页/区/段等(即File Space) ha: 哈希算法的实现 handler: 继承与MySQL的handler,实现handler API与Server交互 ibuf: 插入缓冲(Insert Buffer)的实现 include: InnoDB所有头文件都放在这个目录,是查找结构定义的最佳地点 lock: InnoDB的锁实现及三种锁算法实现 log: 日志缓冲(Log Buffer)和重做日志组(Redo Log)的实现 InnoDB目录结构(2) mem: 辅助缓冲池(Additional Memory Pool)的实现,用来申请一些内部数据结构的内存 mtr: 事务的底层实现(日志,缓冲) os: 封装一些对于操作系统的操作 page: 页的实现,研究InnoDB文件结构,这个目录至关重要 pars: 重载部分MySQL的SQL Parser(有待商榷) que: Query graph,基本上没啥用 read: 读取游标的实现 rem: 行管理操作(比较操作,打印等) row: 对于各种类型行数据操作的实现 srv: InnoDB后台线程,启动服务,Master Thread,SQL队列等 sync: InnoDB互斥变量(Mutex)的实现,基本同步机制 thr: InnoDB封装的可移植线程库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值