InnoDB多版本并发控制-MVCC

Multi-Version Concurrency Control -多版本并发控制

MySQL的大多数事务存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。MVCC没有统一的实现标准。可以认为MVCC是行级锁的一个变种,它在很多情况下避免了加锁操作,开销更低。Oracle,PostgreSQL都实现了MVCC,实现了非阻塞的读操作,写操作也只锁定必要的行。

MVCC的实现,是通过保存数据在某个时间点的快照来实现的。也就是说,不管执行多长时间,每个事物看到的数据都是一致的。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的数据可能是不一样的。

不同存储引擎的MVCC实现是不同的。典型的有乐观并发控制和悲观并发控制。

  • 乐观并发控制

  • 悲观并发控制

详见:http://my.oschina.net/xinxingegeya/blog/505675

======END======

你可能感兴趣的:(InnoDB多版本并发控制-MVCC)