网易5位大牛推出MySQL内核InnoDB存储引擎360笔记

日常扯皮最适合的往往是最实用的 , 就像我们要讲述的MySQL样 ,它的功能不是最全的 , 架构也不是最完善的 。 但是其体积小、速度快、总体拥有成本低 , 尤其是它具备开放源码的优势 , 迅速成为中小型企业和网站的首选数据库 。
在数据库世界里 , 关于MySQL数据库的新闻一直不断 , 始终萦绕在程序员的耳边 。 2008年 , sUN公司以10亿美元收购了MySQL 数据库 , 标志着该数据库已经成为世界上的主流数据库之一 。 2010 年 , Oracle公司收购了SUN公司 , 标志着该数据库成为Oracle公司的主流数据库产品 。 随着MySQL数据库的逐渐成熟 , 全球规模最大的网络搜索引擎公司Google 决定使用该MySQL数据库 , 国内很多大型的公司也开始使用MySQL数据库 , 例如网易、新浪等 。 这就给MySQL数据库带来了前所未有的机遇 , 同时也出现了学习MySQL数据库的高潮 。
不巴巴了 , 上干货作者从2006年就开始进行數据库的内核开发 , 现在想来还最多只能称为hack 。 作者在内核开发的路上走了很多弯路 , 经过高人的指点以及自己不断的学习与探索 , 终于有了一.些经验 , 现通过本书来完整地展示给读者 。 希望通过MySQL内核系列 , 使正在通往或已经在数据库内核开发道路的人员少走弯路 。
出于这个目的 , 作者联合了网易MySQL技术组的各位同事 , 完成了InnoDB存储引擎卷1的书籍撰写工作 。 其中第1、3.4、5、7、8. 9、10、11章由我个人独立完成 , 第2和第14章由我和温正湖共同完成、第6和第12章由我和饶珑辉共同完成、第13和第15章由我和蒋鸿翔共同完成 。
内容简介本书一共有15章 , 每章都像一本“迷你书” , 可以单独成册 。 用户可以有选择地阅读 , 但是更推荐根据本书的组织方式进行阅读 , 这样会更具有条理性 。
第一章概览:本章首先介绍了MySQL数据库以及InnoDB存储引擎的历史 , 之后介绍了InnoDB存储引擎的源码结构与代码风格 , 最后推荐了阅读InnoDB存储引擎源码的次序 。
网易5位大牛推出MySQL内核InnoDB存储引擎360笔记文章插图
第二章基本数据结构与算法:本章对InnoDB中常用的数据结构和算法进行了介绍 。 首先是InnoDB的内存管理系统 , 从内存管理机制、内存操作基元和内存池及内存区等概念着手进行了详细讲解;之后是哈希表结构 , 介绍了简单哈希表和带链哈希表两种;然后介绍了双链表结构 , 最后还介绍了动态数组、标准排序函数 。 本章的内容是InnoDB的基础 , 相信读者在阅读后续章节的代码时-定会遇到本章所提的相关数据结构与算法 。
网易5位大牛推出MySQL内核InnoDB存储引擎360笔记文章插图
第三章同步机制:本章介绍了InnoDB存储引擎中实现的同步机制mutex和rw-lock 。 InnoDB 存储引擎正是通过这些数据结构才能完成正确并发控制的 。
网易5位大牛推出MySQL内核InnoDB存储引擎360笔记文章插图
第四章重做日志:本章首先介绍与重做日志模块相关的概念 , 之后具体分析了InnoDB存储引擎重做日志模块的实现 。 InnoDB 存储引擎原先就支持组提交 , 因此有着相当不错的性能 。 最后 , 根据之前所介绍的内容 , 分析了如何通过重做日志进行有效恢复 , 从而实现事务系统持久性的要求 。
网易5位大牛推出MySQL内核InnoDB存储引擎360笔记文章插图
第五章mini-transaction:本章介绍了数据库中的三个协议: FIX Rules、Write-Ahead Log、Force-Log-at-commit, 同时介绍了InnoDB存储引擎中mini-transaction的实现 , 并通过一个示例简单展示了mini-transaction产生的重做日志内容 。
网易5位大牛推出MySQL内核InnoDB存储引擎360笔记文章插图


推荐阅读