什么是事务为什么使用事务怎么使用事务如何实现原子性回滚rollback是如何实现的如何实现持久性所以总体步骤是1.读取磁盘中的页数据到内存2.DML操作3.将原数据存入undo log日志用于后面服务器故障导致未提交事务的回滚4.执行修改5.将修改操作写入redo Log6.将redo Log写入Log Buffe7.将Log Buffer中的内容写入磁盘这里不用担心redo Log 写入磁盘失败因为如果写入磁盘失败下面的第八步提交事务就会失败而未提交的事务之间回滚就是了8.提交事务9.将数据从内存写入双写缓冲区这一步是为了如果数据从内存写入磁盘的时候已经写入一些了突然崩溃导致磁盘中数据错误可以通过参照是否和双写缓冲区中内容一样如果不一样则按双写缓冲区中内容进行恢复无双写缓冲区直接写磁盘核心风险是 16KB 数据页的 “部分写 / 页断裂”这是 Redo Log 无法修复的致命问题10.数据落盘事务的隔离性锁锁的类型共享锁和独占锁意向锁索引记录锁间隙锁临建锁Next-key -lock插入意向锁事务的隔离级别多版本并发控制MVCC实现原理ReadView读未提交与脏读读已提交和不可重复读可重复读与幻觉串行化