mvcc工作机制

发布时间 2023-10-11 00:25:53作者: cs7

mvcc的存储方式:
 
1.Append-Only:指的是将数据历史版本直接存储到数据表中,如pgSQL
 
2.Delta:将数据的增量历史版本存储在独立表空间,如mySQL、oracle
 
3.Time-Travle:就是将数据的全量版本存储下,如HANA版本
   

mvcc工作原理:
 
1.读已提交:
 
​ 读已提交只能看到两种数据:
 
当前事务自身产生的事务
 
​ 当前事务开启之前,其他事务提交产生的数据
 
2.可重复读:
 
​ 可重复读在mvcc下,如果事务A执行在事务B之前,且事务B执行的时候事务A还未执行, 当事务A执行完成后,事务B还没有结束的时候可以读取到事务A的数据。
 
 
 
读已提交和可重复读MVCC区别:读已提交隔离级别下每个SQL都有一个快照,它看到的库中数据是不同的。而在可重复读隔离级别下,所有的SQL语句都使用一个快照,可以看到数据库中同样的数据。