PostgreSQL与MySQL源代码分析之旅(2)下--MySQL源代码结构

时间:2022-01-17 05:33:16

    MySQL的源代码目录与PG相比更加的扁平化,从根目录到文件大多数都是3、4级,而且文件名也极尽简化,这种简练对于开发还是有一定的好处的,最起码文件的访问路径不会太长,从这里MySQL的实用主义哲学可见一斑;不好的地方就是核心代码、工具、接口、测试代码都在同级目录下展开,有代码洁癖的可能不一定喜欢。

mysql-5.58

├─BUILD        :在各个平台上的编译脚本
├─client          :客户端工具
├─cmake        :cmak编译脚本
├─cmd-line-utils     :readline等工具
├─dbug          :调试用的宏定义
├─Docs          :帮助文档代码
├─extra          :提供innochecksumresolveip等额外的小工具
├─include        :头文件
├─libmysql        :库文件,生产libmysqlclient.so
├─libmysqld        :
├─libservices       :5.5.x中新加的目录,实现了打印功能
├─man          :手册
├─mysql-test      :测试工具
├─mysys         :内部使用的数据结构和算法
├─packaging       :打包工具
├─plugin         :插件形式的部分功能
├─regex         :正则式实现
├─scripts        :提供脚本工具
├─sql          : mysql核心代码,将会生成mysqld文件
├─sql-bench       :基准测试工具代码
├─sql-common     :服务器端和客户端都会用到的代码
├─storage        :插件式的存储引擎
│ ├─archive
│ ├─blackhole
│ ├─csv
│ ├─example
│ ├─federated
│ ├─heap
│ ├─innobase        :大名鼎鼎的inodb引擎
│ ├─myisam        :同样有名的自带引擎
│ │ └─ftbench
│ ├─myisammrg
│ ├─ndb
├─strings          :string 库
├─support-files
│ ├─dtrace
│ ├─MacOSX
│ └─RHEL4-SElinux
├─tests          :测试文件
├─unittest          :单元测试
├─vio
├─win            :windows平台提供的编译环境
└─zlib            :zlib库