1、和查询语句一样也会走一遍连接器、解析器、预处理器、优化器、执行器
2、执行器在更新数据前,会先查看buffer pool中是否存在要更新的数据,如果不存在则从磁盘加载到buffer pool,存在则进行修改
3、innodb把旧值写入undo log
4、innodb把新值写到buffer pool
5、innodb写redo log并标记为prepare
6、执行器写bin log
7、innodb写redo log并标记为commit,这样就完成了两阶段提交,事务提交后,redo log 和bin log都要持久化到磁盘
三大日志:
undo log : 回滚日志,在异常发生时,对已经执行的操作进行回滚,保证事物的原子性
redo log: 重做日志,是innodb独有的,一旦mysql宕机了,可以使用redo log恢复数据,保证事物的持久性
bin log : 归档日志,是逻辑日志,bin log在数据库备份时可以同步数据,保证事物的一致性
标签:bin,执行器,一条,log,update,innodb,日志,执行,redo From: https://www.cnblogs.com/coooookie/p/17432622.html