首先,我们先来看看一次查询/更新语句流程图
mysql查询/更新流程图
本文会将重点放在执行器-存储引擎之间的交互。
mysql不是每次数据更改都立刻写到磁盘,而是会先将修改后的结果暂存在内存中,当一段时间后,再一次性将多个修改写到磁盘上,减少磁盘io成本,同时提高操作速度。
MySQL通过WAL(writ-ahadlogging)技术保证事务
在同一个事务中,每当数据库进行修改数据操作时,将修改结果更新到内存后,会在rdolog添加一行记录记录“需要在哪个数据页上做什么修改”,并将该记录状态置为prpar,等到