MySql教程

面试二十五、mysql之undo log和redo log

本文主要是介绍面试二十五、mysql之undo log和redo log,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、undo log

  1)实现了事务的原子性

  2)保存了事务前一个版本的数据

  3)可用于回滚

  4)可以恢复到对应版本的数据

  5)mvcc用它实现

2、redo log

  1)实现了事务的持久性

  2)保存了事务的行为(记录事务对数据页做了哪些修改)

  3)可以恢复的最新版本的数据

3、mysql创建log流程:

  2-5是在内存中进行

  1)表中原先a的值为1

  2)事务要将a修改为2

  3)undo log记录a=1的旧记录

  4)事务将a修改为2

  5)redo log记录“事务将a修改为2”

  6)将redo log写入磁盘

  7)将undo log写入磁盘

  8)将数据写入磁盘

  9)事务提交

4、数据恢复

  redo log会记录已提交的事务和未提交的事务

  1)只根据已提交的事务来恢复数据

  2)根据所有事务来恢复数据,然后通过undo log来回滚那些未提交的事务

这篇关于面试二十五、mysql之undo log和redo log的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!