MySQL技术内幕
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
02 M VCC 多 版本并 发
控制
03 MRR
04 ICP
05 默 认 Re p e a ta bl e
事务隔离级别
06 使 用 n e x t-ke y
locking避免幻读
2.InnoDB存 储引擎
存储引擎特点
预读read ahead
01
计算机理论 02
04
checkpoint 机制
聚0簇3 方 式 方 式 存储,无显性 主键则生成6
刷新临界页
两次写double write 异步IO
插入缓冲insert buffer
1.0.x change buffer insert buffer
delete buffer purge buffer 内部实现
2.InnoDB存储引擎
存储引擎特点
01 版 本 5 . 5. 8 后, 默认
存储引擎
4种io thread innodb_read(write)_io_ threads
03 purge thread
缓冲池innodb_buffer_pool_size
01
可以设置 多个实例 instance
02
存储的数 据包括
03 数据结构:
缓冲池innodb_buffer_pool_size
存储的数据包括
ห้องสมุดไป่ตู้法
55%
55%
55%
55%
55%
hash算法
红黑树
平衡二叉树
二分查找
B+树
插入过程 删除过程 检索过程 orderby groupby 过程
索引
索引
A
分类
索引提示
B
Index
Hint
Cardina
C
lity值
ICP优
D
化
Multi-
E
Range
Read
聚集索引 辅助索引 联合索引 覆盖索引 唯一索引 普通索引 全文索引 主键索引
索引页 数据页 undo页 插入缓冲 自适应哈希索引 innodb存储的锁信息 数据字典信息
缓冲池innodb_buffer_pool_size
数据结构:
Free List LRU List Flush List
重做日志缓冲redo_log_buffer_size;8MB
刷新到重做日志文件时机
2XA 3XA TCC 分布式消息
7.事务
实现原理
redo log
undo log
purge
group commit
7.事务
事务控制语句
05
8.其他
8.其他
不支持事务 表锁设计
支持全文索引
常用命令
MyISAM存 储引擎特点
show engine innodb status; show variable
07
2.INNODB存储引擎
2.InnoDB存储引擎
01
02
03
04
InnoDB 存储引擎 InnoDB innodb 关键特性 特点 体系结构 recovery
2.InnoDB存储引擎
InnoDB关键特性
插入缓冲insert buffer
自适应hash索引 adaptive hash index
LOGO
感谢聆听
Master Thread每秒 事务提交 重做日志换冲池剩余空间小于1/2
内存
额外内存池innodb_additional_mem_pool_size
08
3.文件
3.文件
一.参数文件
日志文件
01
错误日志 log_error
02
慢查询日志slow log
03
查询日志query log
04
二进制日志 binary log
索引
索引分类
03
6.锁
锁的类型
共享锁 排他锁
意向锁
意向共享锁 意向排他锁
6.锁
一致性非锁定读
6.锁
一致性锁定读
select ... for update
select ... lock in share mode
6.锁
行锁的算法
01
02
03
Record Lock
Gap Lock
Next-key Lock
锁的问题
脏读|丢失更新
读未提交数据
不可重复读
update,delete
幻读
insert
死锁
锁升级
InnoDB不存在
锁信息存储方式
04
7.事务
7.事务
隔离级别
A
B
C
D
RU
RC
RR
Seri al
7.事务
事务特性ACID
事务分类
01
扁平事务
02
带保存点的扁平事务
03
链事务
04
嵌套事务
05
分布式事务
二进制日志格式
3.文件
一.套接字文件
3.文件
一.pid文件
3.文件
表结构定义文件
01
frm后缀文 件
02
frm同样可 以存放视图
的定义
Innodb存 储引擎文件
表空间文件tablespace 共享表空间
独立表空间 重做日志文件
至少一个重做日志文件组 组内日志文件(默认3个)循环写入 日志条目结构 写入触发机制 innodb_flush_at_trx_commit
like '';
版本更新 特点
故障排查 &问题
分析
线上SQL 优化
06
1.MYSQL体系结构
1.Mysql体系结构
A
连接池 组件
D
查询分析 器组件
B
管理服务 和工具组
件
E
优化器 组件
C
SQL接 口组件
F
缓冲 组件
1.Mysql体系结构
插件式存储 引擎(基于 表)
物理文件
n record user records
free space page directory
file trailer
记录行record
最多可存放 16kb/2-
200=7992行
为什么最少存 放2行记录?
行记录格式 row_format
Compact Redundant
行溢出数据
02
5.索引与算法
共享表空间与独立表空间的区别?
4.表组成元素
段segment
数据段
索引段
回滚段
4.表组成元素
簇extent
一个区的大 小是1MB
连续的64个 页
一次从磁盘 申请4~5个 区
页page
InnoDB磁盘管理的 最小单位:16KB
页类型
页数据结构
file header page header infimum+supermu
LOGO
2020
MySQL技术内幕
演讲人 2025-11-11
目录
01. 4.表组成元素
02. 5.索引与算法
03. 6.锁
04. 7.事务
05. 8.其他
06. 1.Mysql体系结构
07. 2.InnoDB存储引擎 08. 3.文件
01
4.表组成元素
4.表组成元素
表空间tablespace
字节的 ROWID
checkpoi nt机制
缓冲池不够 时,刷新脏 页到磁盘
缩短数据库 的恢复时间
重做日志不 可用时,刷 新脏页
2.InnoDB存储引擎
InnoDB体系结构
后台线 程
内存
后台线程
01
主线程master thread
04
page cleaner thread
02 IO thread