暂无商品咨询信息 [发表商品咨询]
本书是行业专家结合自己十余年的实践经验为读者打造的深入探索MySQL内核权威指南。与其他MySQL类书籍不同,本书深入探索MySQL内核,全景式呈现MySQL 5.7及MySQL 8.0内核设计精髓,从源码层面解读核心模块,涵盖发展历程、架构设计理念和实践等关键内容,解析内核设计与实现细节,帮助读者理解运行机制,无论你是新手还是资深开发者,都能从本书获益。
本书是资深数据库专家结合其十余年一线实战经验与源码研究倾力打造的MySQL内核权威指南,全景式解构MySQL 5.7及MySQL 8.0内核设计精髓。作者采用基于SQL执行流的独特分析范式,通过一条查询语句的生命周期,串联起协议解析、数据字典、InnoDB存储引擎、并发控制等核心模块,揭秘缓冲池、双写缓冲区、自适应哈希索引的协同机制,以及B+树索引的物理操作细节。无论是希望突破技术瓶颈的DBA、追求卓越性能的互联网架构师,还是数据库内核开发者,本书都将为你提供从启动流程到高可用架构(含MGR集群)的完整知识图谱,通过源码调试与物理操作剖析,打通从原理认知到性能调优的实践链路。
本书具体内容如下:第1章详细阐述MySQL内核的发展历程,并指导读者如何下载MySQL源码包以及搭建调试环境;第2章系统介绍MySQL的总体架构;第3章探讨客户端与服务端之间的协议;第4章分析数据字典的结构;第5章详细介绍InnoDB存储引擎的架构,包括在执行SQL语句时,InnoDB存储引擎中的缓冲池、双写缓冲区、自适应哈希索引以及后台线程是如何协同工作的;第6章讨论InnoDB的文件组织方式,解释SQL查询的数据是如何在文件中组织的;第7章揭示InnoDB索引的实现机制,阐述SQL语句是如何在索引上进行数据扫描和插入操作的;第8章阐述MySQL的并发控制机制;第9章介绍MySQL的高可用实现,包括MySQL不同阶段的高可用发展及其原理,以及针对MySQL MGR非常详细的介绍。
赵景波,资深数据库专家,现任国内头部公有云厂商存储管控核心组件负责人。深耕分布式存储与数据库管控领域十余年。主导设计多款支撑千亿级数据规模的高并发数据库系统,技术成果落地金融、政务、游戏等核心场景。职业历程中,曾于2015—2018年担任新浪NoSQL团队负责人,主导完成核心数据库架构升级,实现日均千亿级请求下的毫秒级响应能力;2018—2022年在金山云组建并带领20人研发团队,从零构建DTS数据迁移平台、云原生数据库管控平台,服务企业客户超3000家,推动平台成为公司核心产品线之一。作为行业技术布道者,多次受邀担任中国数据库大会(DTCC)、Redis中国用户组等会议核心讲师,分享高可用架构、性能优化等实战经验。
本书赞誉
推荐序一
推荐序二
推荐序三
推荐序四
推荐序五
前言
第1章 MySQL内核简介 1
1.1 MySQL 内核历史 1
1.2 MySQL 内核衍生 2
1.3 MySQL 内核版本 3
1.4 MySQL内核社区 4
1.5 开始编译MySQL 4
1.5.1 下载MySQL源码包 4
1.5.2 编译MySQL 9
1.5.3 使用IDE进行调试 12
1.5.4 调试技巧 19
1.6 总结 26
第2章 MySQL内核整体架构 27
2.1 Server层 28
2.1.1 连接层 28
2.1.2 查询优化 30
2.1.3 参数、状态、performance_schema 31
2.1.4 缓存 31
2.1.5 日志 32
2.1.6 锁 33
2.1.7 存储过程相关 33
2.1.8 用户自定义函数 34
2.1.9 复制层 34
2.1.10 API层 34
2.2 存储引擎层 35
2.2.1 缓冲池 36
2.2.2 重做日志缓冲区 37
2.2.3 双写机制 37
2.2.4 后台线程 37
2.3 文件层 39
2.4 MySQL启动流程 40
2.4.1 第一阶段 41
2.4.2 第二阶段 43
2.4.3 第三阶段 50
2.5 总结 52
第3章 客户端和服务端交互协议 53
3.1 MySQL的连接方式 53
3.1.1 TCP/IP套接字 53
3.1.2 UNIX域套接字 54
3.1.3 命名管道和共享内存 55
3.2 交互过程 55
3.2.1 MySQL通信协议 56
3.2.2 连接阶段 58
3.2.3 命令执行阶段 61
3.3 处理连接与创建线程 65
3.3.1 MySQL监听客户端请求 66
3.3.2 创建连接线程 67
3.3.3 THD类 69
3.4 总结 71
第4章 数据字典 72
4.1 数据字典简介 72
4.1.1 文件层 74
4.1.2 InnoDB存储引擎层 79
4.1.3 MySQL Server层 83
4.2 .frm文件 89
4.3 数据字典的使用 93
4.3.1 创建表 93
4.3.2 查询表 95
4.3.3 rowid 96
4.4 MySQL 8.0 数据字典 97
4.4.1 文件存储层 99
4.4.2 数据字典缓存 103
4.4.3 数据字典的使用 110
4.4.4 SDI 115
4.4.5 原子DDL 121
4.5 总结 124
第5章 InnoDB存储引擎 125
5.1 整体架构 125
5.2 缓冲池 126
5.2.1 总体架构 126
5.2.2 缓冲池初始化 128
5.2.3 缓存及淘汰 130
5.2.4 相关参数 131
5.3 插入缓冲区 132
5.3.1 插入缓冲的流程 132
5.3.2 相关参数 136
5.4 自适应哈希 136
5.4.1 使用自适应哈希查询 140
5.4.2 自适应哈希索引的维护 140
5.5 重做日志缓冲区 140
5.5.1 整体架构 141
5.5.2 管理结构 142
5.5.3 更新语句的流程 143
5.5.4 重做日志刷盘 145
5.6 双写机制 146
5.6.1 双写缓冲区管理 147
5.6.2 数据的可靠性保证 149
5.7 后台线程 149
5.7.1 master线程 150
5.7.2 I/O线程 151
5.7.3 刷脏线程 153
5.7.4 清理线程 154
5.8 总结 156
第6章 InnoDB文件组织 157
6.1 数据文件 157
6.1.1 逻辑组织结构概览 157
6.1.2 逻辑组织结构管理 160
6.1.3 物理组织结构 167
6.1.4 数据文件的更新操作 177
6.2 重做日志文件 181
6.2.1 总体架构 181
6.2.2 更新操作的重做日志 186
6.3 回滚日志文件 189
6.3.1 总体架构 189
6.3.2 回滚日志的管理 192
6.3.3 更新操作的回滚日志 195
6.4 总结 196
第7章 InnoDB索引的实现 197
7.1 索引简介 197
7.1.1 B树和B+树 198
7.1.2 全文索引 199
7.2 索引的结构 200
7.2.1 聚簇索引的结构 200
7.2.2 二级索引的结构 202
7.2.3 复合索引的结构 203
7.3 索引的管理 204
7.3.1 索引在内存中的管理 204
7.3.2 索引的加载 205
7.3.3 索引的创建 206
7.4 数据检索 209
7.4.1 聚簇索引数据检索 209
7.4.2 二级索引数据检索 209
7.4.3 插入数据 209
7.4.4 删除数据 210
7.4.5 更新数据 210
7.5 索引分裂和合并 211
7.5.1 索引页分裂 211
7.5.2 索引页合并 213
7.5.3 索引页重组 215
7.6 总结 215
第8章 MySQL并发控制 216
8.1 MySQL事务的实现 216
8.1.1 事务的管理 216
8.1.2 事务的执行流程 218
8.1.3 事务的ACID实现 220
8.1.4 MVCC 229
8.1.5 崩溃恢复流程 231
8.1.6 组提交 237
8.1.7 分布式事务 238
8.2 MySQL锁实现 242
8.2.1 简介 242
8.2.2 元数据锁 247
8.2.3 表锁 254
8.2.4 InnoDB行锁 261
8.2.5 InnoDB表锁 269
8.2.6 互斥锁 272
8.2.7 读写锁 275
8.2.8 锁升级和锁降级 279
8.2.9 死锁 281
8.3 总结 283
第9章 MySQL高可用实现 284
9.1 MySQL主从复制 284
9.1.1 数据同步流程 285
9.1.2 binlog日志详解 290
9.1.3 半同步复制 294
9.1.4 并行复制 296
9.2 组复制 303
9.2.1 总体架构 303
9.2.2 数据流 307
9.2.3 MGR Paxos协议优化 325
9.2.4 MGR冲突检测 328
9.2.5 MGR流控 330
9.3 总结 331
基本信息 | |
---|---|
出版社 | 机械工业出版社 |
ISBN | 9787111785651 |
条码 | 9787111785651 |
编者 | 赵景波 著 著 |
译者 | -- |
出版年月 | 2025-07-01 00:00:00.0 |
开本 | 16开 |
装帧 | 平装 |
页数 | 331 |
字数 | 474000 |
版次 | 1 |
印次 | 1 |
纸张 | 一般胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]