MySQL内核:InnoDB存储引擎 卷1

MySQL内核:InnoDB存储引擎 卷1 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:姜承尧
出品人:博文视点
页数:360页
译者:
出版时间:2014-5
价格:69.00元
装帧:平装
isbn号码:9787121229084
丛书系列:
图书标签:
  • MySQL
  • 数据库
  • DataBase
  • 计算机
  • innodb
  • 架构
  • 软件开发
  • 软件架构
  • MySQL
  • InnoDB
  • 存储引擎
  • 数据库
  • 内核
  • 数据存储
  • 事务
  • 索引
  • 性能优化
  • SQL
想要找书就要到 本本书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家,机工畅销图书作者亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,希望通过《MySQL内核:InnoDB存储引擎 卷1》帮助用户真正了解一个数据库存储引擎的开发。

《MySQL内核:InnoDB存储引擎 卷1》可以成为带领读者进入数据库存储引擎的内核开发,帮助那些从事MySQL数据库的相关行业从业人员。同时,《MySQL内核:InnoDB存储引擎 卷1》也适合对于研究生阶段有志于数据库内核开发的同学。

作者简介

姜承尧(DavidJiang),MySQL领域的Oracle ACE,资深MySQL数据库专家,擅长于数据库的故障诊断、性能调优、容灾处理、高可用和高扩展研究,同时一直致力于MySQL数据库底层实现原理的研究和探索。此外,对高性能数据库和数据仓库也有深刻而独到的理解。曾为MySQL编写了许多开源工具和性能扩展补丁,如广受好评的InnoDB引擎二级缓存项目。现任网易杭州研究院技术经理一职,负责MySQL数据库的内核开发,参与设计与开发MySQL数据库在网易云环境中的应用。曾担任久游网数据库工程部经理,曾领导并参与了多个大型核心数据库的设计、实施、管理和维护,实战经验非常丰富。活跃于开源数据库以及开源软件领域,是著名开源社区ChinaUnixMySQL版块的版主,热衷于与网友分享自己的心得和体会,深受社区欢迎。

目录信息

第1章 概览
1.1 InnoDB 存储引擎历史
1.2 源码版本
1.3 源码风格
1.3.1 源码结构
1.3.2 代码风格
1.4 代码编译
1.5 阅读源码次序
1.6 思考题
1.7 继续阅读
第2章 基本数据结构与算法
2.1 相关文件
2.2 内存管理系统
2.2.1 内存管理
2.2.2 通用内存池
2.3 哈希表
2.3.1 哈希算法
2.3.2 数据结构
2.4 双链表
2.4.1 内存双链表
2.4.2 磁盘双链表
2.5 其他数据结构和算法
2.5.1 动态数组
2.5.2 排序
2.6 小结
2.7 思考题
2.8 继续阅读
第3章 同步机制
3.1 相关文件
3.2 基础知识
3.2.1 memory model
3.2.2 mutual exclution
3.2.3 Atomic Read-Modify-Write Operation
3.2.4 spin lock
3.2.5 死锁
3.3 InnoDB 同步机制
3.3.1 mutex
3.3.2 rw-lock
3.3.3 wait array
3.3.4 死锁检测
3.4 小结
3.5 思考题
3.6 继续阅读
第4章 重做日志
4.1 相关文件
4.2 相关概念
4.2.1 简介
4.2.2 物理逻辑日志
4.2.3 LSN
4.2.4 检查点
4.2.5 归档日志
4.2.6 恢复
4.3 物理存储结构
4.3.1 重做日志物理架构
4.3.2 重做日志块
4.3.3 重做日志组与文件
4.4 相关数据结构
4.4.1 log_group_struct
4.4.2 log_struct
4.5 组提交
4.6 恢复
4.6.1 数据结构
4.6.2 重做日志恢复
4.7 总结
4.8 思考题
4.9 继续阅读
第5章 mini-transaction
5.1 相关文件
5.2 mini-transaction 介绍
5.2.1 基本概念
5.2.2 The FIX Rules
5.2.3 Write-Ahead Log(WAL)
5.2.4 Force-log-at-commit
5.3 具体实现
5.3.1 数据结构
5.3.2 物理逻辑日志的实现
5.3.3 mini-transaction 的使用
5.4 示例
5.5 小结
5.6 思考题
5.7 继续阅读
第6章 存储管理
6.1 相关文件
6.2 物理存储
6.2.1 页
6.2.2 区
6.2.3 段
6.2.4 表空间
6.3 数据结构
6.3.1 概述
6.3.2 fil_system_struct
6.3.3 fil_space_struct
6.3.4 fil_node_struct
6.4 异步 I/O
6.4.1 异步 I/O 数据结构
6.4.2 异步 I/O 线程
6.5 总结
6.6 思考题
6.7 继续阅读
第 7 章 记录
7.1 相关文件
7.2 概述
7.3 物理记录
7.3.1 物理记录格式
7.3.2 大记录格式
7.3.3 伪记录
7.4 逻辑记录
7.5 记录之间的比较
7.6 行记录版本
7.7 小结
7.8 思考题
7.9 继续阅读
第8章 索引页
8.1 相关文件
8.2 页
8.3 存储结构
8.3.1 Page Header
8.3.2 Page Directory
8.3.3 示例
8.4 Page Cursor
8.4.1 定位记录
8.4.2 插入记录
8.4.3 删除记录
8.4.4 并发控制
8.5 小结
8.6 思考题
8.7 继续阅读
第9章 锁
9.1 相关文件
9.2 锁与事务
9.2.1 隔离性
9.2.2 事务的隔离级别
9.2.3 幻读
9.3 InnoDB 存储引擎中锁的类型与算法
9.4 锁的内部实现
9.4.1 数据结构
9.4.2 锁的并发控制
9.4.3 锁的类型与模式
9.4.4 锁的兼容性
9.5 显式锁和隐式锁
9.5.1 显式锁与隐式锁的区别
9.5.2 聚集索引记录的隐式锁
9.5.3 辅助索引记录的隐式锁
9.6 加锁操作
9.6.1 加锁流程
9.6.2 加锁过程
9.7 行锁的维护
9.7.1 插入
9.7.2 更新
9.7.3 PURGE
9.7.4 一致性的锁定读
9.7.5 页的分裂
9.7.6 页的合并
9.8 自增锁
9.9 死锁
9.9.1 死锁的概念
9.9.2 死锁概率
9.9.3 死锁的示例
9.10 小结
9.11 思考题
9.12 继续阅读
第10章 B+树索引
10.1 B+ 树
10.1.1 概述
10.1.2 插入
10.1.3 删除
10.2 B+ 树索引
10.2.1 索引的特点
10.2.2 聚集索引
10.2.3 辅助索引
10.2.4 填充因子
10.3 InnoDB 存储引擎 B+ 树索引实现
10.3.2 相关 latch
10.3.3 整理
10.3.4 分裂
10.3.5 合并
10.4 查找
10.4.1 mode
10.4.2 latch_mode
10.4.3 cursor
10.5 DML 操作
10.5.1 插入
10.5.2 非主键更新
10.5.3 主键更新
10.5.4 删除
10.6 持久游标
10.7 自适应哈希索引
10.7.1 实现原理
10.7.2 创建哈希索引
10.7.3 哈希索引的维护
10.7.4 自适应哈希索引的优缺点
10.8 小结
10.9 思考题
10.10 继续阅读
第11章 Insert Buffer
11.1 相关文件
11.2 基本概念
11.3 架构实现
11.3.1 存储结构
11.3.2 逻辑控制
11.3.3 示例
11.4 相关数据结构
11.5 死锁
11.5.1 latch 顺序
11.5.2 并发控制
11.5.3 异步 I/O 线程
11.6 维护
11.6.1 记录合并
11.6.2 空间收缩
11.7 小结
11.8 思考题
11.9 继续阅读
第12章 缓冲池
12.1 相关文件
12.2 概述
12.2.1 缓冲池
12.2.2 LRU、Free 和 Flush 链表
12.2.3 基本数据结构
12.3 缓冲池的管理
12.3.1 LRU 算法
12.3.2 LRU 链表维护
12.3.3 页的分配
12.4 页的读取
12.4.1 物理读取
12.4.2 随机预读
12.4.3 线性预读
12.4.4 逻辑读取
12.5 页的刷新
12.5.1 检查点
12.5.2 部分写的问题
12.5.3 刷新的实现
12.6 小结
12.7 思考题
12.8 继续阅读
第13章 事务处理
13.1 相关文件
13.2 事务
13.2.1 概述
13.2.2 分类
13.2.1 隔离级别
13.3 事务系统结构
13.3.1 事务系统段
13.3.2 数据结构
13.4 DOUBLEWRITE 段
13.5 UNDO 日志存储
13.5.1 简介
13.5.2 实现结构
13.5.3 回滚段
13.5.4 UNDO 段
13.6 UNDO 记录
13.6.1 存储结构
13.6.2 INSERT UNDO LOG RECORD
13.6.3 UPDATE UNDO LOG RECORD
13.7 PURGE
13.7.1 清理操作
13.7.2 实现原理
13.8 ROLLBACK
13.8.1 回滚指针
13.8.2 回滚操作
13.9 COMMIT
13.10 kernel_mutex 与并发控制
13.11 小结
13.12 思考题
13.13 继续阅读
第14章 数据字典
14.1 相关文件
14.2 数据字典概述
14.3 主要数据对象
14.3.1 数据字典系统
14.3.2 表定义
14.3.3 索引定义
14.3.4 外键约束定义
14.3.5 其他数据对象定义
14.4 InnoDB 系统表对象
14.4.1 SYS_TABLES
14.4.2 SYS_COLUMNS
14.4.3 SYS_INDEXES
14.4.4 SYS_FIELDS
14.4.5 其他表对象
14.5 数据字典创建
14.5.1 数据字典段
14.5.2 数据字典物理结构
14.5.3 数据字典初始化
14.5.4 数据字典缓存组织
14.6 数据字典对象加载
14.6.1 用户表加载
14.6.2 用户索引和外键约束加载
14.7 小结
14.8 思考题
14.9 继续阅读
第15章 服务管理
15.1 相关文件
15.2 初始化 InnoDB 存储引擎
15.2.1 相关重要参数
15.2.2 服务管理相关数据结构
15.2.3 文件创建和加载
15.2.4 启动后台线程
15.3 关闭 InnoDB 存储引擎
15.3.1 数据持久化
15.3.2 资源释放
15.4 master 线程
15.4.1 主要功能
15.4.2 数据刷盘策略
15.5 锁超时监控线程
15.6 思考题
15.7 继续阅读
· · · · · · (收起)

读后感

评分

本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的? 本书分析的是 MySQL ...

评分

本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的? 本书分析的是 MySQL ...

评分

本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的? 本书分析的是 MySQL ...

评分

本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的? 本书分析的是 MySQL ...

评分

本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的? 本书分析的是 MySQL ...

用户评价

评分

真正的好书,是能够激发思考的,这本书正是如此。它并不满足于描述“是什么”,更致力于探究“为什么是这样设计”。阅读过程中,我经常会产生“原来如此”的顿悟时刻,尤其是在理解页的组织结构和索引维护的代价时。作者对数据结构和算法的运用把握得炉火纯青,将这些抽象概念融入到实际的存储引擎实现中,让人不得不佩服设计者的精妙。这本书的结构安排非常合理,知识的递进关系处理得当,让读者能够平稳地进入到复杂的领域。它不是那种读完一遍就能完全吸收的书籍,更像是工具书和案头参考的完美结合体,每当工作遇到新的挑战时,翻开它,总能从中找到解决问题的底层思路。对于致力于深入理解数据库核心技术的同仁而言,这本书绝对是值得反复研读,并将其置于案头的珍贵资料。

评分

说实话,我一开始还担心这类的技术书籍会写得过于枯燥,毕竟谈论存储引擎的内部机制,很容易陷入堆砌术语的陷阱。然而,这本书的叙事风格非常引人入胜,它不仅仅是知识的罗列,更像是一场精心策划的技术探索之旅。作者的写作功力着实了得,他总能找到最恰当的比喻和最直观的图示来解释那些复杂的并发控制和日志写入过程。特别是关于锁的机制,涉及到的间隙锁、行锁的粒度控制,常常是面试的高频考点,但书里对这些细节的处理,细腻到让人拍案叫绝。我花了整整一个周末才啃完关于日志和恢复的部分,那种跟随着日志文件一步步追踪故障恢复流程的感觉,非常震撼。它不仅教会了我如何优化查询,更重要的是,它建立起了一种严谨的、自底向上的问题排查思维框架。读完这一部分,我对“数据持久性”这个词汇有了全新的敬畏感。

评分

这本书简直是数据库爱好者的圣经!初拿到手,就被那厚重的分量和精炼的封面设计所吸引。我一直对数据库底层架构充满好奇,特别是InnoDB这个被广泛应用却又深不可测的家伙。这本书没有给我那种晦涩难懂的理论灌输,而是以一种庖丁解牛般的细致,层层剥开了InnoDB的神秘面纱。从事务的ACID特性到MVCC的实现机制,再到索引的B+树结构,作者的讲解深入浅出,逻辑严密。我尤其喜欢它在关键节点引入的源码片段和剖析,这让抽象的概念瞬间具象化,仿佛我真的能“触摸”到数据在内存和磁盘间流转的脉络。阅读过程中,我时常会停下来,结合自己工作中遇到的性能瓶颈进行反思,那些曾经困扰我的“为什么”和“如何做”都在书中的阐述下豁然开朗。对于希望从“会用”迈向“精通”的DBA或后端工程师来说,这本书提供的视角是无可替代的,它让你不再满足于配置参数,而是真正理解参数背后的原理,从而做出更优的决策。

评分

这本书的阅读体验,可以概括为“痛快淋漓,酣畅不止”。作者在梳理技术脉络时,展现出极高的专业素养和清晰的逻辑组织能力。它并没有刻意去拔高难度,而是非常实在地将InnoDB引擎的每一个核心模块,从启动到运行,再到各种异常情况的处理,都进行了详尽的剖析。我特别欣赏它在讨论高并发场景时的处理方式,例如对事务隔离级别下数据可见性的解释,配合时序图的分析,简直是教科书级别的范本。我常常在思考,如果没有这样一本高质量的参考书,我可能需要花上数倍的时间,在无数的官方文档和零散的博客文章中拼凑知识碎片。这本书的价值在于它的系统性和权威性,它像是一张高清地图,帮助我们在复杂的存储引擎森林中,精准定位每一个关键节点的位置和作用。读完之后,我对数据库设计的底层逻辑信心倍增。

评分

作为一名常年与MySQL打交道的运维人员,我手头的资料不少,但大多侧重于SQL优化和日常运维操作。真正深入到InnoDB引擎层面的系统性讲解,我之前接触的较少。这本书的价值就在于,它填补了这一块巨大的知识空白。我发现,很多我们日常为了提高性能而进行的“经验主义”操作,其实都有着坚实的理论基础,这本书将这些理论清晰地呈现出来。例如,关于Buffer Pool的管理策略,书中对LRU算法的变种以及何时触发脏页回写都有极其详尽的描述,这让我明白了为何有时候我们会观察到不寻常的I/O峰值。更别提那些关于内存结构和磁盘I/O交互的章节,简直是性能调优的实战宝典。它不会直接告诉你“把这个参数设成500”,而是告诉你“为什么是500,以及在什么场景下这个值可能需要调整”。这种深层次的理解,才是构建强大技术能力的基石。

评分

认真思考每章末尾的问题,必能沉淀技术。。^_^

评分

偏源码,如果只想了解运行机制的话不建议读

评分

终于到了可以看懂的时候了

评分

挺详细的,搞清不少概念

评分

一堆 mysql 原理书,不了解源码设计还是一脸懵逼。所以已经忘的七七八八了,所以后面的策略不应该上来直接想了解源码,自己还没到这功力

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 onlinetoolsland.com All Rights Reserved. 本本书屋 版权所有