目录
1、什么是MVCC
MVCC, 全名Multiversion concurrency control。MVCC是在MySQL InnoDB引擎中实现的,从名称可以看出,它可以将同一份数据保留多个版本,进而提升数据库的并发性能。在查询的时候,通过 Read View 和版本链找到对应版本的数据,来处理读写冲突,做到即便在有读写冲突的情况下,也能做到不加锁而非阻塞并发读。
对于高并发场景,MVCC 比行级锁开销更小。
2、MVCC解决了什么问题
1)在并发读写数据库时,数据读写不冲突。即在读数据时不用阻塞写操作,写操作也不用阻塞读操作,这也极大地增加了系统并发性能。
2)解决脏读、幻读、不可重复读等事务隔离问题。
缺点:不能解决数据更新丢失问题。