一个事务提交后,为了保证事务的原子性与持久性,会在 undo log 和 redo log 记录相应的日志,以在需要回滚或重做时使用。但是目前关于 redo log 和 undo log 以及数据页的写入顺序并没有找到解释的清楚的资料。
林晓斌写的是“引擎将这行新数据更新到内存中,同时将这个更新操作记录到 redo log 里面”,这个同时能保证是原子的吗,是不是从 数据更新到内存 到 写 undo log 和 redo log 完成这段时间里,数据页是不会作为脏页刷入磁盘的(或者说 是不会写到 buffer pool 的 flush 链表中的)?
林晓斌写的是“引擎将这行新数据更新到内存中,同时将这个更新操作记录到 redo log 里面”,这个同时能保证是原子的吗,是不是从 数据更新到内存 到 写 undo log 和 redo log 完成这段时间里,数据页是不会作为脏页刷入磁盘的(或者说 是不会写到 buffer pool 的 flush 链表中的)?