原子性实现原理(undo log)

  • Undo Log是为了实现事务的原子性,在MySql数据库InnoDB存储引擎中,还用Undo Log来实现多版本并控制(MVCC)。

  • 在操作任何数据之前,首先将数据备份到一个地方(这个存储数据备份的地方称为Undo Log)。然后进行数据的修改。如果出现了错误或者用户执行了ROOLBACK语句,系统可以利用Undo Log中的备份将数据恢复到事务开始之前的状态。

  • 注意:undo log是逻辑日志,可以理解为:

    • 当delete一条记录时,undo log中会记录一条对应的insert记录
    • 当insert一条记录时,undo log中会记录一条对应的delete记录
    • 当update一条记录时,他记录一条对应相反的update记录

持久性实现原理(redo log)

  • 在事务提交前,只要将Redo log持久化即可,不需要将数据持久化。当系统崩溃时,虽然数据没有持久化,但是redo log已经持久化。系统可以根据redo log的内容,将所有数据恢复到最新状态。

如何MySql的原子性和持久性

相关文章:

  • 2021-08-06
  • 2022-12-23
  • 2021-07-24
  • 2021-09-15
猜你喜欢
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-12-21
  • 2022-01-13
相关资源
相似解决方案