-
连接器负责连接、解析器解析语法树、优化器找出索引等
-
执行器调用引擎接口,通过主键索引搜索记录。如果id=1的记录在buffer pool(数据页缓存),直接返回,如果不在,从硬盘load出来buffer pool,并且返回
-
执行得到记录,将更新前后的记录发给引擎,让引擎去真正执行update
-
开启事务,先生成一条 undo log,undo log 会写入 Buffer Pool 中的 Undo 页面
-
接着开始更新记录,先更新内存,再写到redo log,这时候更新算完成,这个技术叫做WAL。
-
更新完成后,开始记录对应的binlog,此时binlog会被写到binlog cache
-
事务提交,过程如下:
- prepare 将 redo log 对应的事务状态设置为 prepare,刷盘redo log
- commit 刷盘binlog 接着调用引擎的提交事务接口,将 redo log 状态设置为 commit