Innodb通过Buffer Pool,LogBuffer,Redo Log,Undo Log来实现事务,以update语句为例:
- Innodb在收到update语句后,会先根据条件找到数据所在⻚,并将该⻚缓存在Buffer Pool
- 执⾏update语句,修改Buffer Pool中的数据
- 针对update语句⽣成⼀个RedoLog对象,并存⼊LogBuffer
- 针对update语句⽣成undolog⽇志,⽤于事务回滚
- 如果事务提交,那么则把RedoLog对象进⾏持久化,后续还有其他机制将Buffer Pool中所修改的数据⻚持久化到磁盘
- 如果事务回滚,则利⽤undolog⽇志进⾏回滚