MySQL的多版本并发控制

数据库 waitig 550℃ 百度已收录 0评论

什么是MVCC

MySQL的默认隔离级别REPEATABLE READ(可重复读)解决了脏读,不可重复读问题,但还是无法解决幻读的问题。所谓幻读,指的是A事务读取某个范围内的记录时,另外一个B事务又在该范围内插入了新的记录,A事务再次读取该范围的记录时,会产生幻行。

InnoDB和XtraDB存储引擎通过多版本并发控制(Multiversion Concurrency Control)MVCC解决了幻读的问题。

不仅是MySQL,包括Oracle,PostgreSQL等数据库系统也都实现了MVCC。

MVCC并没有正式的规范,也没有一个统一的实现标准。不同的数据库实现的机制不尽相同,不同的存储引擎的MVCC实现也不同,典型的有乐观并发控制和悲观并发控制。下面看下InnoDB存储引擎来看下MVCC是如何工作的。

InnoDB的MVCC实现


本文由【waitig】发表在等英博客
本文固定链接:MySQL的多版本并发控制
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)