MySQL
2025-05-30 09:45:38 1 举报
mysql更新操作底层原理
作者其他创作
大纲/内容
4.写redo日志
Server层
Pageid =1 ........
查询缓存
name = lisi
InnoDB层
Page...............
管理链接和权限校验
根据存储引擎调用,引擎接口方法
连接器
name = lisi1
修改的数据
磁盘文件ibd
undo回滚日志文件InnoDB特有
Buffer Pool
Redo Log Buffer
优化器
分析词法,生成语法树
6.准备提交事务,Server层写入Binlog到磁盘文件
Redo日志文件InnoDB特有
5.顺序写到redo日志文件,落磁盘。准备提交事务(prepare阶段)
3.更新Buffer Pool中的数据
binlog日志文件(server层)记录修改逻辑
2.写入要更新的数据的旧值,方便回滚
1.加载id=1记录所在页中的数据(以Page为单位加载)到Buffer Pool
分析器
7.写入commit标记到redo日志文件里,提交事务完成,该标记为了保证事务提交后redo log和binlog数据一致
client执行更新操作update from user set name='lisi1' where id =1
IO线程
8.在系统空闲时将数据随机写入磁盘,以Page为单位写入,这步做完后磁盘上的值,最终修改为name=lisi1
生成执行计划,选择所以
执行器

收藏
0 条评论
下一页