它的实现原理主要是版本链undo日志Read View来实现的

1 当前读和快照读

1.1 当前读(Current Read)

指读取最新的数据版本,即使这些数据是由其他事务修改但尚未提交的。

特点

1.2 快照读(Snapshot Read)

每个事务在开始时会创建一个一致性视图(Consistent View),快照读是在读取数据时读取一个一致性视图中的数据。

特点

2 mvcc实现原理

2.1 undo log

启动事务之前,会先将要修改的数据记录存储到Undo Log中。

2.2 版本链

不同事务或者相同事务对同一记录行的修改,会使该记录行的 undo log 成为一条链表,链首就是最新的记录,链尾就是最早的旧记录