mysql执行update语句流程
- 客户端发送更新命令到MySQL服务器,经过处理连接、解析优化等步骤;
- Server层向InnoDB存储引擎要id=1的这条记录;
- 存储引擎先从bufferpoll中查找这条记录,有的话直接返回,没有则从磁盘加载到bufferpoll中然后返回;
- Server层执行器修改这条记录的name字段值;
- 存储引擎更新修改到内存中;
- 存储引擎记录redo日志,并将状态设置为
prepare
状态; - 存储引擎通知执行器,修改完毕,可以进行事务提交;
- Server先写了个binlog;
- Server提交事务;
- 存储引擎将redo日志中和当前事务相关的记录状态设置为
commit
状态。