前言

前言

目标读者

这是一本讲解数据库原理及其具体实现的书,本书主要面向想要了解MariaDB和MySQL的工作原理及其具体实现的读者,以及想要阅读MariaDB和MySQL源代码却苦于不知道从何处开始的读者。

本书的整体思路是由简至繁,从基本原理到具体实现细节,书中由浅入深地剖析了MariaDB以及MySQL。

如果你想要阅读本书,首先必须具有一定的数据库基础知识;其次,你应该具备一定的C/C++语言知识,因为MariaDB/MySQL主要是用C/C++编写的,在分析具体实现的时候,我们会给出大量的源代码。

章节安排

本书的章节安排如下。

第1章描述了MariaDB相关的一些基础内容,包括MariaDB的历史、MariaDB所做的一些优化、MariaDB与MySQL的兼容性以及如何安装使用MariaDB,等等。

第2章讲解了MariaDB添加的新特性以及对MySQL原有功能所做的扩展。

第3章首先讲解了MariaDB源代码的组织结构以及MariaDB对函数和基本类型的封装,最后从实战的角度讲解了如何调试MariaDB。读者可以通过边调试边阅读MariaDB代码的方式来学习MariaDB。

第4章对MariaDB/MySQL中使用比较多的一些底层数据结构进行了介绍,为我们后面更深入地讲解MariaDB/MySQL各种功能的实现奠定了基础。

第5章详细分析了MariaDB的线程池技术,包括使用以及具体的实现机制。

第6章从实际的应用场景出发,详细阐述了binlog的相关内容。

第7章重点讲解了MariaDB的binlog group commit技术,该技术在具有高并发事务的场景下能够极大地提高MariaDB单位时间内的事务提交数。

第8章用很大的篇幅介绍了MariaDB/MySQL复制相关的内容,主要包括复制的工作原理、复制的实现、半同步复制、MariaDB多源复制、GTID,等等。

第9章讲解了数据库技术中用到的一些数据结构和算法,包括B+树数据结构、ORDER BY语句所使用的算法、JOIN相关的算法,等等。

第10章介绍了分布式数据库相关的一些内容,包括基本概念、特点、一些技术难点,等等。最后,我们分析了京东分布式数据库系统的架构。

附录A讲解了资源控制方面的一些内容,主要是关于如何利用Linux系统的CGroup机制来控制系统资源的使用情况,并且详细分析了CGroup各个子系统的具体实现。

我们建议读者按顺序来阅读本书,但你也可以挑选自己感兴趣的章节进行阅读。

致谢

这里我们要感谢京东云平台开放云事业部负责人郭理靖在本书编写过程中的大力支持以及相关的指导工作,感谢京东云平台云数据库组的田琪、闫国旗、张帅、杨轩嘉、都海峰在本书的编写过程中提供的大量支持和帮助,让本书的编写工作能顺利完成。

联系作者

在编写本书的过程中,我们尽全力做到最好,仍无法避免一些错误,如果你在本书中发现了错误,可以通过新浪微博(@弓长金鹏)与我们交流,我们将非常感谢。

目录

  • 前言
  • 第 1 章 MariaDB概述
  • 第 2 章 MariaDB的扩展和新特性
  • 第 3 章 初识MariaDB源代码
  • 第 4 章 MariaDB基础数据结构
  • 第 5 章 MariaDB线程池
  • 第 6 章 二进制日志binlog
  • 第 7 章 binlog group commit技术
  • 第 8 章 复制
  • 第 9 章 数据结构和算法
  • 第 10 章 分布式数据库
  • 附录 A 数据库与IO资源控制