MySQL内核:InnoDB存储引擎 卷1

MySQL内核:InnoDB存储引擎 卷1
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2014-05
版次: 1
ISBN: 9787121229084
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 360页
字数: 528千字
正文语种: 简体中文
114人买过
  • 《MySQL内核:InnoDB存储引擎(卷1)》由资深MySQL专家亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量很好实践,希望通过本书帮助用户真正了解一个数据库存储引擎的开发。《MySQL内核:InnoDB存储引擎(卷1)》可以成为带领读者进入数据库存储引擎的内核开发的入门书籍,帮助那些从事MySQL数据库相关行业的从业人员。同时,本书也适合对于研究生阶段有志于数据库内核开发的同学阅读。   姜承尧(DavidJiang),MySQL领域的OracleACE,资深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内核:InnoDB存储引擎(卷1)》由资深MySQL专家亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量很好实践,希望通过本书帮助用户真正了解一个数据库存储引擎的开发。《MySQL内核:InnoDB存储引擎(卷1)》可以成为带领读者进入数据库存储引擎的内核开发的入门书籍,帮助那些从事MySQL数据库相关行业的从业人员。同时,本书也适合对于研究生阶段有志于数据库内核开发的同学阅读。
  • 作者简介:
      姜承尧(DavidJiang),MySQL领域的OracleACE,资深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内核:InnoDB存储引擎 卷1
MySQL数据库应用与维护项目式教程(微课版)
舒蕾 刘均
MySQL内核:InnoDB存储引擎 卷1
MySQL项目实战
赵丽梅
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库应用技术项目教程(微课版)
吕学芳;莫新平;平涛
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库运维与管理(微课版)
邓文达 邓河
MySQL内核:InnoDB存储引擎 卷1
MySQL快速入门到精通
明日科技 编著
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库原理、设计与应用(第2版)
黑马程序员
MySQL内核:InnoDB存储引擎 卷1
MySQL 8.0从入门到实战
张文亮
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库项目化教程(微课版)
龚静 邓晨曦
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库技术与应用(微课版)
范瑛
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库项目式教程()
陈亚峰 编
MySQL内核:InnoDB存储引擎 卷1
MySQL 8.0数据库原理与应用
吕凯;曹冬雪
MySQL内核:InnoDB存储引擎 卷1
MySQL数据库原理与应用(国家级实验教学示范中心联席会计算机学科组规划教材)
王金恒;王煜林;刘卓华;陈孝如
您可能感兴趣 / 更多