InnoDB事务-持久性的实现,binglog & redo log

在MySQL InnoDB 这个语境下, crash safe、数据不丢失 都指的是事务的持久性特性,即事务一旦提交,应当保证所有被成功提交的数据修改都能够正确地被持久化,不丢失数据, 即使宕机也能够恢复数据 在InnoDB 中,持久性 基于binlog 和redo log 实现, 且binlog 与redo log 的写入通过2PC 协调. 0 XA 事务:binlog 和redo log...

InnoDB事务-隔离性的实现, MVCC & 锁

隔离性,还有一个说法就是 数据可见性。 隔离性、数据可见性是一个在并发事务下才需要考虑的问题,并发事务可以分3种情况考虑 读-读, 读操作不会对数据产生影响,所以不需要关注 读-写 or 写-读, 可能会出现脏读、不可重复读、幻读 写-写,可能会脏写的情况 并发事务下的数据的一致性写问题 脏写:一个事务修改了另一个未提交事务修改过的数据。 并发事务下的数据的一致性读问题 脏读:事务...

InnoDB事务-原子性的实现,undo log

原子性指的是事务要么完全成功执行,要么完全失败回滚,不允许部分执行。 这本质上是在要求具有rollback 回滚能力。 InnoDB中的事务可能会由用户主动触发Rollback;也可能因为遇到死锁异常Rollback;或者发生Crash,重启后对未提交的事务回滚。 InnoDB 的 rollback回滚能力 是基于 undo log 实现的。undo log 记录了修改操作前的旧版本数据,以...

Intro to InnoDB事务

在Intro to 事务中介绍过, 一致性是事务的核心特征,或者说最终目的,原子性、隔离性和持久性都是实现一致性的手段。 所以在介绍InnoDB 事务时,主要介绍AID 特性的实现InnoDB事务-原子性的实现, undo logInnoDB事务-隔离性的实现, MVCC & 锁InnoDB事务-持久性的实现, binglog & redo log&undo log ...