SQL语句执行过程第二版
2022-04-15 11:31:59 0 举报
SQL语句执行过程第二版
作者其他创作
大纲/内容
OS Buffer
分析器
innodb
6.提交事务,将binlog日志写入到磁盘
根据执行计划去匹配合适的索引,选择一个最佳的执行方案
client端update table set name=\"lisi\" where id = 1id为1的原数据的name为zhangsan
调用执行引擎的APi
redo log buffer
磁盘文件
redo log block
pagename=zhangsan
redo log
trailer4字节
pagename=lisi
body496字节
binlog
2.将从磁盘文件读取的缓存记录写入到undolog中便于回滚
checkpoint on4字节
4.将redolog block写入到redolog buffer中
第一个日志的偏移量2字节
5.调用fsync()进行刷盘操作
命中缓存
7.写入commit标记到redolog文件里提交事务完成,该标记是为了保证事务提交后redolog和binlog数据的一致性
....
连接器
块编码4字节
词法语法分析,校验你的sql语句是否有错误
1.建立连接,基于半双工通信2.验证账号和密码是否正确3.检验权限
执行器
8.随机写入磁盘,以page为单位写入,这一步做完磁盘里name=lisi
修改数据
已经写入的数据长度2字节
3更新内存中数据
io线程
优化器
buffer pool缓存池
1.加载ID为1的记录所在的整页数据
1.超过Redologbuffer一半的内存8M就会触发刷盘操作2.提交事务的时候会强制进行刷盘操作3.后台线程定时刷新,有一个后台线程每隔1s就会把redo log buffer里的redo log block刷到磁盘文件里去。
header12字节
执行优化器传来的sql语句
undo log
page......
0 条评论
下一页