1.原子性,持久性和一致性
- 原子性,持久性和一致性主要是通过redo log、undo log、Force Log at Commit和DoubleWrite机制来完成的。
- redo log用于在崩溃时恢复数据
- undo log用于对事务回滚时进行撤销,也会用于隔离性的多版本控制。
- Force Log at Commit机制保证事务提交后redo log日志都已经持久化。
- Double Write机制用来提高数据库的可靠性,用来解决脏页落盘时部分写失效问题。
2.InnoDB事务整体流程分析
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010811004840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0Nzg3ODk4,size_16,color_FFFFFF,t_70)
3.使用redolog实现事务的一致性和持久性
内存数据落盘整体思路分析
![在这里插入图片描述](https://img-blog.csdnimg.cn/202101081101176.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0Nzg3ODk4,size_16,color_FFFFFF,t_70)
日志的刷盘机制如下图所示: