MySQL 5.7 源码中的目录结构
MySQl Server的源码可以直接去Github浏览。
这里我们选择5.7版本的:https://github.com/mysql/mysql-server/tree/5.7
也可以通过:
git clone https://github.com/mysql/mysql-server.git
下载下来。
源码根目录中主要目录和文件的作用:
- BUILD:里面包含各个平台,各个编译器下进行编译的脚本;
- CMakeLists.txt:CMake入口编译文件;
- client:客户端工具,所有客户端工具都在这里,比如mysql,mysqlbinlog,mysqladmin,mysqldump等;
- cmake:为CMake编译服务的,这里定义了很多在CMake编译时使用的方法或变量;
- cmd-line-utils:一些小工具;
- config.h.cmake:用于生成编译时配置头文件的.cmake文件;
- dbug:提供一些调试用的宏定义,可以很好地跟踪数据库执行到的执行函数、运行栈桢等信息,可以定位一些问题;
- extra:包含了用来做网络消息认证的SSL包,并提供了comp_err、resolveip等小工具;
- include:MySQL代码包含的所有头文件,这里不包括存储引擎的头文件;
- libbinlogevents:MySQL 5.7 引擎开始新增的、用于解析Binlog的lib服务;
- libmysql:用来创建嵌入式系统的MySQL客户端API;
- libmysqld:MySQL服务器的核心级API文件,也用来开发嵌入式系统;
- mysql-test:mysqld的测试工具;
- mysys:MySQL自己实现的一些常用的数据结构和算法,比如array,list和hash,以及一些区分不同底层操作系统平台的函数封装,比如my_file,my_fopen等函数,这一类型的函数都以my开头;
- mysys_ssl:MySQL中SSL相关的服务;
- plugin:包括一些系统内置的插件,比如auth,password_validation等,同时包含了可动态载入的插件,比如fulltext,semisync等;
- regex:一些关于正则表达式的算法实现;
- scripts:包含一些系统工具脚本,比如mysql_install_db,mysqld_safe及mysqld_multi等;
- sql:MySQL服务器主要代码,这里包含了main函数(main.cc),将会生成mysqld可执行文件;
- sql-common:存放部分服务器端和客户端都会用到的代码;
- storage:所有存储引擎的源代码都在这个目录中,文件夹名一般就是其存储引擎的名称,包括innobase,myisam,blackhole,ndb及perfschema等;
- strings:包含很多字符串处理的函数,比如strmov,strappend及my_atof等函数;
- support-files:my.cnf示例配置文件及编译所需的一些工具;
- unittest:单元测试文件目录;
- vio:虚拟网络IO处理系统,是对不同平台或不同协议的网络通信API的封装;
- win:在windows平台编译所需的文件和一些说明;
- zlib:zlib压缩算法库;
- zifeiy:大晚上的我讲一个笑话给你听,就是没有zifeiy这个文件夹,我多加了一行逗大家乐一下然后就去睡觉了,晚安~
MySQL 5.7 源码中的目录结构的更多相关文章
- MySQL源码分析以及目录结构 2
		原文地址:MySQL源码分析以及目录结构作者:jacky民工 主要模块及数据流经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改.本文将对MySQL的整体架构及重要目录进行讲述. 源码结 ... 
- MySQL源码分析以及目录结构
		原文地址:MySQL源码分析以及目录结构作者:jacky民工 主要模块及数据流经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改.本文将对MySQL的整体架构及重要目录进行讲述. 源码结 ... 
- mysql 函数在源码中的定义
		大牛那海蓝蓝 MySQL提供了较为丰富的SQL语句,用以支持MySQL提供的主要功能.在数据库内部,MySQL又是怎么知道自己能够处理哪些对象.处理哪些事情的? 如果我们输入一条SQL语句,MySQL ... 
- (3.1)mysql基础深入——mysql二进制与源码目录结构介绍
		(3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ... 
- Linux 中mysql安装(源码安装方式)
		本文是介绍以源码安装的方式编译和安装Mysql 5.6(可以指定安装路径),也可以不采用源码安装方式,直接用安装包的方式. 源码安装方式慎用,容易报错. 1.卸载旧版本 rpm -qa | grep ... 
- linux下MySQL 5.6源码安装
		linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ... 
- Eclipse与Android源码中ProGuard工具的使用
		由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ... 
- 《iOS开发指南》正式出版-源码-样章-目录,欢迎大家提出宝贵意见
		智捷iOS课堂-关东升老师最新作品:<iOS开发指南-从0基础到AppStore上线>正式出版了 iOS架构设计.iOS性能优化.iOS测试驱动.iOS调试.iOS团队协作版本控制.... ... 
- wemall app商城源码中android按钮的三种响应事件
		wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ... 
随机推荐
- H5--性能测试(PageSpeed Insights )
			中文网站(不需要翻墙): http://www.googlespeed.cn 主要可实现: 1.测试手机与电脑打开的速度对比. 2.详细的测试结果 3.直观的统计数据,查看页面的共xx个请求.总共大小 ... 
- 用vue开发一个所谓的数独
			1.前言 最近的后台管理系统页面,功能暂时没有新的需求,就在想首页放什么东西,最近我想到的就是放个所谓的数独,为什么是所谓的数独,因为规则不同于标准的数独,只要求每一行每一列数字不一样就可以了!这个实 ... 
- SqlProfilter监控指定数据库数据表——监控linq组合查询生成的sql
			1.例子 实际测试环境中往往很多测试都在调用数据库,那么如何使用SqlProfilter监控筛选到自己想要监看的数据库对应的表有关linq生成的sql时候就需要做如下设置了 ........... u ... 
- javascript权威指南第15章 使用Canvas绘图
			HTML <!DOCTYPE html> <html> <head> <title>canvas</title> </head> ... 
- 洛谷 P2038 无线网络发射器选址 题解
			每日一题 day9 打卡 Analysis 这道题是个模拟,两个0~128( 注意不是1~128 )的循环枚举正方形中心点,判断正方形的边界,再用循环枚举公共场所的数量就好了. 时间复杂度 < ... 
- SQL Server查询性能
			sql server常用语句总结 http://ace105.blog.51cto.com/639741/792519 SQL Server 性能调优(一)--从等待状态判断系统资源瓶颈 ... 
- jQuery网页加载的不同方式
			一.window.onload 代码是从上而下执行的,通过window.onload可以使事件在页面加载完毕再执行 注意:window.onload事件多个只会执行最下面的一个,前面的会被覆盖 < ... 
- 题解 CF375D 【Tree and Queries】
			首先,子树上的查询问题可以通过$DFS$序转为序列问题 再一看,没有修改,可以离线,这不就是莫队吗? 我们用$sum_i$表示出现次数$\geq i$的个数 用$val_i$表示第$i$种颜色的出现次 ... 
- codevs 4244 平衡树练习
			二次联通门 : codevs 4244 平衡树练习 Splay实测指针占用空间大约是数组的3倍, 且时间上也慢了差不多1s 数组版评测记录如下 指针版评测记录如下 以上数据仅限这一个题, 对于 ... 
- linux系列(十一):nl命令
			1.命令格式: nl [选项] [文件] 2.命令功能: nl(Number of Lines) 将指定的文件添加行号标注后写到标准输出.如果不指定文件或指定文件为"-" ,程序将 ... 
