Multi-Version Concurrency Control -多版本并发控制
MySQL的大多数事务存储引擎实现的都不是简单的行级锁。基于提高并发性能的考虑,它们通常都同时实现了多版本并发控制(MVCC)。MVCC没有统一的实现标准。能够认为MVCC是行级锁的一个变种,它在不少状况下避免了加锁操做,开销更低。Oracle,PostgreSQL都实现了MVCC,实现了非阻塞的读操做,写操做也只锁定必要的行。并发
MVCC的实现,是经过保存数据在某个时间点的快照来实现的。也就是说,无论执行多长时间,每一个事物看到的数据都是一致的。根据事务开始的时间不一样,每一个事务对同一张表,同一时刻看到的数据多是不同的。性能
不一样存储引擎的MVCC实现是不一样的。典型的有乐观并发控制和悲观并发控制。.net
乐观并发控制blog
悲观并发控制事务
详见:http://my.oschina.net/xinxingegeya/blog/505675get
======END======io