InnoDB事务原理

Innodb事务的ACID是通过InnoDB日志和锁来保证。事务的隔离性是通过数据库锁的机制实现的,持久性通过RedoLog(重做日志)来实现,原子性和一致性通过UndoLog来实现。 UndoLog的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方(这个存储数据备份的地方称为UndoLog)。然后进行数据的修改。 如果出现了错误或者用户执行了Rollback语句,系统可以利用UndoLog中的备份将数据恢复到事务开始之前的状态。 和UndoLog相反,RedoLog记录的是新数据的备份。在事务提交前,只要将RedoLog持久化即可,不需要将数据持久化。 当系统崩溃时,虽然数据没有持久化,但是RedoLog已经持久化。系统可以根据RedoLog的内容,将所有数据恢复到最新的状态。

results matching ""

    No results matching ""