概述:

流程:

  • 更新语句进入InnoDB引擎。
  • 从磁盘上加载对应的数据(当然也有可能这个恰好就在内存中)
  • 在内存中对这个上对数据做相应改动。
  • 记录redo log,此时处于prepare阶段
  • bin log
  • 将prepare阶段的redo log记录进行commit(流程到这里就结束了,返回成功)
  • 后续mysql自己会找合适的时机,把redo log持久化到磁盘中。


两阶段提交

第一阶段,prepare

  • 数据记录在redo log上,标记为prepare状态

    最终阶段,commit

  • 数据在bin log上记录完成,把redo log上的状态改为commit