innodb sql语句详细流程
2021-11-15 15:04:32 0 举报
innodb sql语句详细流程
作者其他创作
大纲/内容
执行引擎接口,获取执行结果
如果数据写入redo日志中,数据还么有写入idb文件中,数据库挂掉了,那么可以使用redo日志文件的内容恢复buffer pool缓存中的数据
此时是顺序写,性能高的离谱哈
查询优先查找缓存
连接管理、密码验证和权限校验
server端适配所有引擎
其他的会走
修改的数据会开启一个io线程不定期的随机写入磁盘最新数据
7、准备提交事务,开始写binlog日志
执行器
判断你输入的这个 SQL 语句 是否满足 MySQL 语法
5、开始写redo日志(保证一致性)到redo buffer中
6、准备提交事务,将redo buffer的内容写入磁盘redo日志文件
连接器
8、写commit标记给redo日志文件里面,标识提交事务完成。该标记为了保证提交事务后binlog日志和redo日志的一致性
1、根据条件去磁盘文件(idb)中拿到对应的页数据
2、将页数据放到buffer pool缓存池当中
3、写入更新数据的旧值到undo日志文件(保证原子性)当中,如果有事务提交失败要回滚数据可以用undo日志李的数据恢复buffer pool中的缓存数据
优化器
分析器
最后一步
根据索引确定执行方案
客户端
缓存
数据库的增删改查都是直接操作的buffer pool,buffer poll一般设置是机器内存的60%左右
binlog日志主要是为了恢复数据磁盘的数据
4、此时才开始修改buffer pool中的数据
收藏
收藏
0 条评论
下一页