MariaDB原理与实现-so88
MariaDB原理与实现 pdf epub mobi txt 电子书 下载 2022
图书介绍
☆☆☆☆☆
||
张金鹏,张成远,季锡强 著
出版社: 人民邮电出版社 ISBN:9787115385178 版次:1 商品编码:11668495 包装:平装 开本:16开 出版时间:2015-03-01 用纸:胶版纸 页数:289
编辑推荐
京东一线开发人员力作
详细讲述数据库内部的实现原理
深入浅出地阐述MariaDB的设计理念
广泛涵盖MariaDB区别于MySQL的主要亮点功能
内容简介
《MariaDB原理与实现》由浅入深地剖析了MariaDB,首先简要介绍了一些基础知识、新特性、对MySQL原有功能所做的扩展以及源代码,接着介绍了底层数据结构、线程池技术、binlog、复制等内容,结尾介绍了分布式数据库系统。作者简介
张金鹏,京东技术专家,MySQL数据库专家,京东云数据库组核心成员,主要负责MySQL内核优化及二次开发。多年数据库领域以及搜索引擎领域的工作经验,对Redis、Memcached等NoSQL数据库,以及CGroup、LXC、Docker等容器技术有深入的研究。 新浪微博:弓长金鹏张成远,京东架构师。毕业于东北大学,硕士阶段研究分布式数据库相关方向,2012年加入京东云数据库技术团队。擅长高性能服务器开发、分布式数据库、分布式存储/缓存等大规模分布式系统架构。主导了京东分布式数据库系统及容器系统的架构与开发工作。 新浪微博:NEU_寒水
季锡强。京东架构师,主要负责京东分布式数据库的架构设计及研发工作,主导容器技术在京东的应用与推广。专注于高性能服务器、分布式数据库、分布式存储/缓存及容器技术,对容器核心技术及golang并发编程有深入研究。
内页插图
精彩书评
本书对于MariaDB的各种特性如数家珍,从基本原理到源代码,使读者洞悉一切。但这又不是一本只讲MariaDB的书,还详细介绍了MariaDB与MySQL的差异,而且作者还无私分享了很多京东数据库的实践经验。总之一句话, 这是一本关于MariaDB与众不同的好书! ——汪源,网易杭州研究院副院长之前国内在数据库系统方面的技术积累有限,现在我看到国内越来越多数据库方面图书的出版,感到由衷的高兴。 作为MySQL的一个重要源代码分支,MariaDB包括的一些新特性使它在某些地方优于MySQL,同时基于对MySQL后续发展的担心,包括谷歌在内的一些大公司开始逐步使用MariaDB替换MySQL。 本书从设计原理开始讲解,深入浅出地剖析了MariaDB以及MySQL的几部分重要功能的具体实现细节,是作者在京东工作实践中的提炼和总结。通过本书,你不但可以学习到数据库方面的基础理论,也可以参照书中的实例进行MariaDB源代码方面的实践。相信本书对使用和学习MariaDB的读者有很大的帮助。 ——MySQL ACE Director/新浪首席数据库架构师,杨海朝
MariaDB不仅免费开源,而且支持一些新特性,如多源复制、线程池、binlog group commit等,并且Google已经从MySQL迁移到了MariaDB。 本书由浅入深地讲述了MariaDB的基本原理和实现细节,并结合在京东的实战经验,给出基于MariaDB的分布式数据库的实现。 相信本书对学习MariaDB的读者会非常有帮助。 ——京东架构师,吴元清
目录
第1章 MariaDB概述 1
1.1 MariaDB的历史 1
1.2 MariaDB所做的事情 2
1.2.1 更丰富的存储引擎 2
1.2.2 性能的提升 2
1.2.3 扩展和新特性 3
1.2.4 更好的测试 3
1.2.5 尽量消除错误和警告 4
1.3 MariaDB的版本与兼容性 4
1.3.1 MariaDB 5.1和MySQL 5.1的不兼容性 4
1.3.2 MariaDB 5.2和MySQL 5.1的不兼容性 5
1.3.3 MariaDB 5.3和MySQL 5.1、MariaDB 5.2的不兼容性 5
1.3.4 MariaDB 5.5和MariaDB 5.3的不兼容性 6
1.3.5 MariaDB 5.5与MariaDB 5.3和MySQL 5.5 的不兼容性 7
1.3.6 MariaDB 10.0和MySQL 5.6的不兼容性 7
1.4 编译和安装MariaDB 8
1.4.1 使用二进制安装包进行安装 8
1.4.2 使用源代码进行编译安装 9
1.5 联系社区 11
1.6 小结 12
第2章 MariaDB的扩展和新特性 13
2.1 更多的存储引擎 13
2.1.1 全新的Aria存储引擎 13
2.1.2 XtraDB存储引擎 16
2.1.3 SphinxSE存储引擎 17
2.1.4 FederatedX存储引擎 17
2.1.5 TokuDB存储引擎 18
2.1.6 Cassandra存储引擎 18
2.1.7 CONNECT存储引擎 18
2.1.8 Sequence存储引擎 19
2.1.9 Spider存储引擎 20
2.2 线程池技术和binlog group commit技术 22
2.2.1 线程池技术 22
2.2.2 binlog group commit技术 23
2.3 MariaDB其他扩展和新特性 23
2.3.1 更高的时间精度 23
2.3.2 虚拟列 24
2.3.3 用户统计功能 25
2.3.4 KILL命令的扩展 27
2.3.5 命令执行进度报告 27
2.3.6 动态列 28
2.3.7 多源复制 29
2.4 小结 29
第3章 初识MariaDB源代码 31
3.1 MariaDB源代码的目录组织结构 31
3.2 MariaDB对类型和函数的封装 33
3.2.1 对类型的封装 33
3.2.2 对函数的封装 33
3.3 调试MariaDB 34
3.3.1 准备工作 34
3.3.2 mysqld关键的函数调用 37
3.3.3 调试 38
3.4 小结 40
第4章 MariaDB基础数据结构 41
4.1 内存池MEM_ROOT 41
4.1.1 内存碎片问题 42
4.1.2 MEM_ROOT的定义 44
4.1.3 MEM_ROOT的使用 46
4.1.4 MEM_ROOT的初始化 47
4.1.5 分配内存 48
4.1.6 内存回收 50
4.1.7 MEM_ROOT的使用场景 52
4.2 文件缓存IO_CACHE 52
4.2.1 高性能武器——缓存 53
4.2.2 IO_CACHE的定义 54
4.2.3 IO_CACHE的使用 57
4.3 NET结构 63
4.4 线程上下文——THD 65
4.5 TABLE_SHARE 69
4.6 TABLE 73
4.7 小结 76
第5章 MariaDB线程池 77
5.1 线程池相关的参数 77
5.1.1 MariaDB 5.1和MariaDB 5.3中的线程池 77
5.1.2 MariaDB 5.5和MariaDB 10.0中的线程池 78
5.2 何时使用线程池 79
5.3 线程池的实现 79
5.3.1 线程池相关的数据结构 80
5.3.2 线程池的初始化 82
5.3.3 添加连接到线程池 84
5.3.4 worker线程 85
5.3.5 get_event函数 86
5.3.6 listener线程 89
5.3.7 timer线程 92
5.4 小结 94
第6章 二进制日志binlog 95
6.1 简介 95
6.1.1 binlog的作用 96
6.1.2 index文件 96
6.2 binlog的使用 97
6.2.1 开启binlog 97
6.2.2 选择binlog的格式 97
6.2.3 binlog的相关参数 98
6.3 binlog事件 99
6.3.1 binlog事件格式 99
6.3.2 binlog事件类型 101
6.3.3 binlog事件的实现 108
6.4 清理binlog 109
6.4.1 手动清理binlog 109
6.4.2 自动清理binlog 109
6.4.3 purge命令的实现 109
6.5 binlog_cache_mngr结构 112
6.6 mysqlbinlog工具 112
6.7 使用binlog进行恢复 113
6.8 小结 113
第7章 binlog group commit技术 115
7.1 事务的两阶段提交 115
7.2 binlog group commit的工作原理 117
7.3 binlog group commit的实现 118
7.3.1 相关的数据结构 118
7.3.2 代码执行流程 120
7.3.3 事务排队 125
7.3.4 leader线程的工作 128
7.3.5 prepare_ordered和commit_ordered接口 134
7.4 小结 135
第8章 复制 136
8.1 简介 136
8.2 复制的作用 137
8.3 复制的工作原理 138
8.3.1 概要 138
8.3.2 relay-log 140
8.3.3 master.info文件和relay-log.info文件 140
8.4 复制的配置 141
8.4.1 在新安装的主库和从库上配置复制 141
8.4.2 主库有一定数据时的复制配置 144
8.4.3 选择性复制 150
8.5 复制的实现 151
8.5.1 复制相关的数据结构 152
8.5.2 复制的初始化——init_slave函数 157
8.5.3 CHANGE MASTER TO命令——准备工作 159
8.5.4 START SLAVE命令——开启复制 160
8.5.5 STOP SLAVE命令——停止复制 160
8.5.6 slave IO线程 161
8.5.7 slave SQL线程 164
8.5.8 master dump线程 165
8.6 半同步复制 168
8.6.1 半同步复制的工作原理 168
8.6.2 半同步的安装和配置 169
8.6.3 半同步复制的实现 171
8.6.4 半同步复制的变种 179
8.6.5 半同步复制的潜在问题 180
8.7 并行复制 181
8.7.1 MySQL的并行复制 181
8.7.2 MariaDB的并行复制 181
8.8 多源复制 182
8.8.1 多源复制的应用场景 182
8.8.2 多源复制相关的命令 183
8.8.3 MariaDB多源复制的实现 184
8.9 GTID 185
8.9.1 GTID的概念 186
8.9.2 在MySQL上配置基于GTID的复制 186
8.9.3 MySQL中GTID的实现 187
8.9.4 MariaDB中的GTID 195
8.10 小结 195
第9章 数据结构和算法 197
9.1 算法复杂度 197
9.2 B+树和索引 198
9.2.1 磁盘的读取 198
9.2.2 B+树 199
9.2.3 数据库索引 200
9.3 堆排序与快速排序 201
9.3.1 堆——优先级队列 201
9.3.2 堆排序 202
9.3.3 快速排序——qsort 203
9.4 ORDER BY的实现 204
9.4.1 使用索引的已有顺序 205
9.4.2 filesort算法 207
9.5 JOIN的实现 210
9.5.1 JOIN语句的使用 211
9.5.2 Nest Loop Join算法 212
9.5.3 Block Nest Loop Join算法 214
9.5.4 Batched Key Access Join算法 216
9.5.5 Hash Join算法 216
9.5.6 Sort Merge Join算法 217
9.6 小结 218
第10章 分布式数据库 219
10.1 分布式数据库概要 219
10.1.1 分布式数据库的特点 219
10.1.2 系统的扩展方式 220
10.1.3 分布式数据库中的技术难点 221
10.2 数据的分片方式 221
10.3 分布式数据库实践——京东分布式数据库系统 222
10.3.1 京东分布式数据库系统架构 222
10.3.2 高可用组的初始化 223
10.3.3 数据的分片 224
10.3.4 系统的高可用性 225
10.3.5 系统的可扩展性 227
10.4 小结 230
附录A 数据库与IO资源控制 231
前言/序言
自从60多年前关系型数据库出现起,它就被广泛使用。至今,几乎所有IT系统都离不开关系型数据库。在MySQL出现前,关系型数据库行业几乎被Oracle、IBM DB2和Microsoft SQL Server几个商业巨头垄断了。商业数据库的封闭性和高昂的价格,对IT行业在深度和广度上的使用、提升数据库系统以及时适应各种新需求(尤其是互联网等行业带来的新需求)造成了很大的阻碍。20世纪末开源数据库MySQL的出现和崛起,为整个数据库行业带来了巨大的希望。可惜随着MySQL被Oracle公司收购,存在Oracle公司将MySQL闭源的巨大潜在风险。为了避免这种风险,为行业提供一个永久开源免费的关系型数据库系统,MariaDB被创造了出来。虽然MariaDB最初只是MySQL的一个分支,但近年来随着社区的壮大和普及度的迅猛上升,它在很多方面已经超过了MySQL,例如性能、复制功能和存储引擎等,并且大有完全替代MySQL的势头。
本书深入浅出地阐述了MariaDB的设计理念,剖析了MariaDB的几个关键而有趣的子系统。本书的作者是我的同事,我目睹了他们将日常工作实践中总结和提炼出MariaDB的心得转化成书的过程。这是一本理论结合实践的书,读者不但可以学习到MariaDB的理论,还可以参照书中的实例一步步地自行调试实践。我相信本书会对有志学习MariaDB的读者有所帮助。
作为一个曾经在数据库行业耕耘8年的老兵(主要从事SQL Server存储引擎研发),我也深深地期待国人不但能深度掌握MariaDB的使用技术,还能在MariaDB社区作出越来越多的贡献,为积累和提升数据库方面的核心能力而努力。期待这本书能启发和引导更多的同行来参与MariaDB社区的工作并发挥出价值。
何刚,京东集团技术副总裁
MariaDB原理与实现 电子书 下载 mobi epub pdf txt
电子书下载地址:
相关电子书推荐:
- 文件名
- 正版 趣味物理学 雅科夫伊西达洛维奇别莱利曼 9787512709447
- 满58包邮 农户绿色农业技术采纳行为研究 9787109232259 吴雪莲 中国农业出
- 探秘百科 无限探索版:辉煌的古罗马
- 儿童中国文化导读:孝弟三百千(注音版) [7-14岁]
- 爱问百科:从数理化到宇宙太空
- 江南制造局科技译著集成(农学卷第2分册)(精) 9787312041600 -RT
- 人类符号简史
- 童立方·小恐龙大挑战双语版绘本(套装全6册) [3-6岁]
- 空中战神-兵器帝国大揭秘-儿童视觉大系
- 10册国学经典注音版 三字经+百家姓+千字文+弟子规全集笠翁对韵论语百家姓成语故事唐诗寓言
- 丹青集粹
- 中国蜂业产业发展报告-2014
- 诺贝尔文学奖获奖者的故事 9787518609185
- 低碳农林业
- 正版书籍 探寻雾霾之谜的重大发现