回顾
undo log:
原子性:
- 事务要么成功,要么失败,不能不分成功,不分失败 。
- 事务执行到一半失败后,需要回滚,回滚到数据修改前的状态;
- 怎么做?回滚日志undolog记录了修改的详细的内容,修改前和修改后的都串在一个链表中,还有一个事务id,详细的记录了是哪个事务修改的
持久性:
- 当事务提交之后,不管MySQL server会出现什么不可预期的错误,哪怕是进程挂了,断电了,只要事务提交成功,由MySQL-server处理完异常后把数据恢复到正常状态。(redo log实现的)
- 不管是事务提交成功了,还是要回滚一个事务,都有可能出现异常;
- 出现了异常之后,能不能将上一次还没有回滚完的数据继续回滚完;事务提交了,事务假如有一个写数据的过程,在写的过程中,如果机器断电异常了,下次进行正常操作时,需要将这个数据恢复回来,恢复到 事务提交的样子。 (都是通过redo log重做日志实现的)
</