MySQL 源码系列:1:窥探篇
1:下载源码
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
http://dev.mysql.com/downloads/mysql/
2:解压后的根目录结构
3:InnoDB存储引擎的目录结构:
mysql-5.6.25\storage\innobase
4:目录简介
btr:B+树的实现。
buf:缓冲池的实现,包括LRU算法,Flush刷新算法等。
dict:InnoDB存储引擎内存数据字典的实现。
dyn:InnoDB存储引擎动态数组的实现。
fil:InnoDB存储引擎中文件数据结构以及对文件的一些操作。
fsp:可以理解为file space,即对InnoDB存储引擎物理文件的管理,如页、区、段等。
ha:哈希算法的实现。
handler:继承于MySQL的handler,插件式存储引擎的实现。
ibuf:插入缓冲的实现。
include:InnoDB将头文件(.h .ic)文件都统一放在这个文件夹下。
lock:InnoDB存储引擎锁的实现,如S锁、X锁,以及定义锁的一些列算法。
log:日志缓冲和重组日志文件的实现。
mem:辅助缓冲池的实现。用来申请一些数据结构的内存。
mtr:事物的底层实现。
os:封装了一些对操作系统的操作。
page:页的实现。
row:对于各种类型行数据的操作。
srv:对于InnoDB存储引擎参数的设计。
sync:InnoDB存储引擎互斥量(Mutex)的实现
trx:事物的实现
ut:工具类
MySQL 源码系列:1:窥探篇的更多相关文章
- 手牵手,从零学习Vue源码 系列一(前言-目录篇)
系列文章: 手牵手,从零学习Vue源码 系列一(前言-目录篇) 手牵手,从零学习Vue源码 系列二(变化侦测篇) 手牵手,从零学习Vue源码 系列三(虚拟DOM篇) 陆续更新中... 预计八月中旬更新 ...
- 手牵手,从零学习Vue源码 系列二(变化侦测篇)
系列文章: 手牵手,从零学习Vue源码 系列一(前言-目录篇) 手牵手,从零学习Vue源码 系列二(变化侦测篇) 陆续更新中... 预计八月中旬更新完毕. 1 概述 Vue最大的特点之一就是数据驱动视 ...
- Dubbo3 源码系列 Dubbo“纠葛”(入门篇)
日期 更新说明 2022年5月28日 spring xml部分解读 2022年6月3日 spring annotation部分解读 人生不相见, 动如参与商. 今夕复何夕, 共此灯烛光. 少壮能几时, ...
- 深入MySQL源码 学习方法 何登成专家
MYSQL 技术圈 有哪些做得好,又注重分享的公司: Oracle MySQL, MariaDB, Percona,Google, FB, Twitter, Taobao, NetEase… 有哪些值 ...
- 【转】Ubuntu编译安装mysql源码
主要参考了下面两篇文章 http://forum.ubuntu.org.cn/viewtopic.php?t=330121 http://www.linuxidc.com/Linux/2011-09/ ...
- Mysql 源码编译教程贴
题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环 ...
- Ioc容器BeanPostProcessor-Spring 源码系列(3)
Ioc容器BeanPostProcessor-Spring 源码系列(3) 目录: Ioc容器beanDefinition-Spring 源码(1) Ioc容器依赖注入-Spring 源码(2) Io ...
- AOP执行增强-Spring 源码系列(5)
AOP增强实现-Spring 源码系列(5) 目录: Ioc容器beanDefinition-Spring 源码(1) Ioc容器依赖注入-Spring 源码(2) Ioc容器BeanPostProc ...
- 【MySQL源码】源码安装和启动mysql
--[MySQL源码]源码安装和启动mysql --------------------------------------2014/08/19 本机环境:ubuntu12.04,fedora-17 ...
随机推荐
- UITextField的简易封装
UITextField的简易封装 效果 源码 https://github.com/YouXianMing/UI-Component-Collection 中的 UITextFieldView // ...
- Node.js + Express 构建的订餐系统
Node.js的版本 - v0.8.12 Express的版本 – v3.3.3 (安装 $ npm install -g express) 系统的登录逻辑是:获取用户名 + 密码,向内网RTX服务 ...
- 迷宫问题的C语言求解
1 .Preface /** * There have been many data to introduce the algorithm. So I will try to simply expla ...
- 关于bootstrap Modal弹窗 滚动条的问题
如果自己通过代码关闭Modal窗体,需要在代码里增加一句代码 $('body').removeClass('modal-open'); 把这个CSS样式移除了
- java-nio之zero copy深入分析
对于所有的io操作,底层一定是调用操作系统的api来进行读写.受限于不同的操作系统,操作方式一定是有差异的.以下read和write操作,可以看做服务器从磁盘硬件上读取文件数据,然后通过socket发 ...
- 第三十二章 elk(3)- broker架构 + 引入logback
实际中最好用的日志框架是logback,我们现在会直接使用logback通过tcp协议向logstash-shipper输入日志数据.在上一节的基础上修改!!! 一.代码 1.pom.xml < ...
- AD各种布线方法总结
1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...
- iOS图标抖动效果
开始抖动 -(void)BeginWobble { srand([[NSDate date] timeIntervalSince1970]); float rand=(float)random(); ...
- [leetcode]Word Break II @ Python
原题地址:https://oj.leetcode.com/problems/word-break-ii/ 题意: Given a string s and a dictionary of words ...
- js遍历jstl数组
查询到在js中可以使用jstl <script> <c:forEach items="${channel.templates}" var="templa ...