1.原子性,持久性和一致性
- 原子性,持久性和一致性主要是通过redo log、undo log、Force Log at Commit和DoubleWrite机制来完成的。
- redo log用于在崩溃时恢复数据
- undo log用于对事务回滚时进行撤销,也会用于隔离性的多版本控制。
- Force Log at Commit机制保证事务提交后redo log日志都已经持久化。
- Double Write机制用来提高数据库的可靠性,用来解决脏页落盘时部分写失效问题。
2.InnoDB事务整体流程分析
3.使用redolog实现事务的一致性和持久性
内存数据落盘整体思路分析
日志的刷盘机制如下图所示:
3.1 CheckPoint检查点机制
- 当数据库发生宕机时,数据库不需要重做所有的日志,因为Checkpoint之前的页都已经刷新回磁盘。数据库只需对Checkpoin