Innodb引擎SQL执行的BufferPool缓存机制
2025-02-19 11:43:45 0 举报
Innodb引擎SQL执行的BufferPool缓存机制
作者其他创作
大纲/内容
如果事物提交成功,buffer pool里面的数据还没有写入磁盘,此时系统宕机,可以通过read日志恢复buffer pool中的数据
client执行一条sqlupdate user set name = 'zhuge666' where id = 1
5、准备提交事物read日志写入磁盘
page...
Read Log Buffer
执行器
3、更新buffer pool数据
InnoDB存储引擎
管理链接和权限验证:1、默认超时:8h2、所有的链接放在pool中3、修改权限需要重新链接才会生效
管理链接和权限验证
BufferPool缓存池
read日志文件(InnoDB引擎持有)name=zhuge666
如果事物提交失败要回滚数据,可以用undo日志里的数据恢复buffer pool里的缓存数据
修改数据
undo日志文件(InnoDB引擎持有)name=zhuge
查询缓存
binlog日志主要用来恢复数据库磁盘里的数据
4、写read日志
binlog文件(属于server层)name=zhuge666
7、写入commit标记到read日志文件里提交事物完成,该标记为了保证事物提交之后read和binlog数据一致性
调用引擎接口获取查询结果
IO线程
6、准备提交事物binlog日志写入磁盘
磁盘文件(ibd)
pagename=zhuge666...
8、随机写入磁盘以page为单位写入,操作完成磁盘数据变为name=zhuge666
连接器
Server
2、记录更新数据之前的旧值便于回滚
1、加载数据到缓存加载id=1的记录所在的整页数据到缓存
执行计划生成和索引选择
优化器
pagename=zhuge...
优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序
分析器
语法和词法分析
0 条评论
下一页