Mysql——一条 update 语句的执行过程
1、更新数据时,先看数据在不在Buffer Pool缓冲池中,在的话就直接修改缓冲池中的数据。
2、Server 层调用 InnoDB 引擎层的 API 接口,InnoDB 引擎将这条数据写到内存,同时写入 redo log,并将redo log 状态设置为 prepare,然后将 redo log 写入磁盘。
3、通知 Server 层,可以提交了,此时将数据写入 bin log,然后调用 InnoDB 对应接口发出 commit 请求,提交事务。
4、将 redo log 写入磁盘,将redo log状态设置为 commit 。