Innodb引擎SQL执行的BufferPool缓存机制
2023-01-29 20:13:37 0 举报
Innodb引擎SQL执行的BufferPool缓存机制
作者其他创作
大纲/内容
3.更新内存数据
5.准备提交事务redo日志写入磁盘
磁盘文件(ibd)
执行计划生成,索引选择
binlog文件(属于server层)name=kk..........
IO线程
跟navicat等客户端建立连接、获取权限、维持和管理连接
Server层
InnoDB存储引擎
执行器
Redo LogBuffer
优化器
词法分析、语法分析
undo日志文件(InnoDB引擎特有)name=lingkk.........
修改的数据
连接器
Buffer Pool缓冲池
查询缓存
客户端执行sqlupdate t set name='kk' where id=1id为1的数据name原值为lingkk
2.写入更新数据的旧值便于回滚
pagename=kk..........
如果事务提交失败要回滚数据,可以用undo日志里的数据恢复buffer pool里的缓存数据
调用引擎接口,获取查询结果
redo日志文件(Innodb引擎特有)name=kk...........
如果事务提交成功,buffer pool里的数据还没来得及写入磁盘,此时数据集宕机了,可以用redo日志里的数据恢复buffer pool里的缓存数据
page.............
pagename=lingkk..........
1.加载缓存数据加载id为1的记录所在的正整页数据
4.写redo日志
分析器
6.准备提交事务binlog日志写入磁盘记录的是sql语句的执行逻辑
binlog主要用来恢复数据库磁盘里的数据
调用引擎接口
7.写入commit标记到redo日志文件里,提交事务完成,该标记为了保证事务提交后redo日志与binlog数据一致
8.写入磁盘,随机IO以page为单位写入,这步完成磁盘里的数据name=kk
0 条评论
回复 删除
下一页