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