MySQL内核:InnoDB存储引擎(卷1)
2020-04-07 13:53:26 0 举报
AI智能生成
MySQL内核:InnoDB存储引擎(卷1)
作者其他创作
大纲/内容
MySQL内核:InnoDB存储引擎(卷1)
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.1 数据结构
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.3 隔离级别
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 继续阅读
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 继续阅读
0 条评论
下一页