外观
什么是 MVCC
MVCC
指的是多版本无锁并发控制:
主要针对的是读已提交、可重复读的Mysql
事务隔离级别无锁的实现方式,用于提高事务的并发性能,利用UndoLog
查询数据的历史版本
在执行一条更改的sql
语句后,实际上那一条更改的行数据,还有三个隐藏的数据,分别是代表事务id的一个键,代表存储更新前的旧数据的一个指针键,如果没有设置主键默认的主键row id
,在你进行查询的时候通过ReadView
快照去查询UndoLog
日志中的历史版本,获取你要的数据
可重复读隔离级别要求的是前后几次的查询数据都要一致,所以MVCC
只会创建一次ReadView
快照,下一次查询直接使用上一次查询的快照即可