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⽇志进⾏回滚
