InnoDB多版本并发控制——MVCC

ε祈祈猫儿з 提交于 2019-11-30 16:44:57
Multi-Version Concurrency Control -多版本并发控制

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

 

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

 

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

  • 乐观并发控制

  • 悲观并发控制

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!