miniob文档中提到的MVCC实现,对应哪一种隔离级别呢?求解答。
MVCC只在REPEATABLE READ和READ COMMITTED两个隔离级别下工作。其他两个隔离级别都和MVCC不兼容,因为READ UNCOMMITED总是读取最新的数据行,而不是符合当前事务版本的数据行。而SERIALIZABLE则会对所有读取的行都加锁。
摘抄——《高性能mysql第三版》
读已提交:事务每次读创建一个ReadView,新的ReadView会更新除 当前事务id 的所有字段,并能判断出修改此事务的数据是否提交,因此可以避免脏读,但无法避免不可重复读。
可重复读:同一个事务共用第一次读的ReadView
1 个赞
mark