查询sql
1. 存储引擎查询
2. 索引页是否在内存
3. 索引页中没有,则从磁盘中读入索引页到内存
4. change buffer中是否有该索引页的更新
5. 将change buffer更新数据merge到数据页中
6. 从缓存中匹配到目标索引记录,得到主键
7. 主键对应的数据页是否在内存,没有则从磁盘读入数据到内存
8. 得到查询结果
更新sql
1. 从buffer pool(内存中)中查看是否有这条数据,没有就从磁盘中加载到buffer pool,然后对这条记录加独占锁
2. 把更新行记录的旧值写入undo log(便于回滚)
3. 更新buffer pool中的数据
4. 执行器把对数据的修改情况写入redo log中
5. 准备提交事务,按策略把redo log刷到磁盘
6. 执行器生成这次更新的binlog,再按策略刷到binlog文件
7. 执行器调用引擎的提交事务接口,完成最终的事务提交