多版本并发控制(MVCC)

  可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。

  虽然实现机制有所不同,但大都实现了非阻塞的读操作,写操作也只锁定必要的行。

  MVCC的实现是通过保存数据在某个时间点的快照来实现的。

  MVCC只在读提交和可重复读这两个隔离级别下工作。

 


 

  保存这两个额外的系统版本号,使大多数读操作都可以不用加锁,这样设计使得读数据操作很简单,性能很好,并且也能保证只会读取到符合标准的行,不足之处是每行记录都需要额外的存储空间,需要做更多的行检查工作,以及一些额外的维护工作。

 

MVCC在RR和RC隔离级别下的区别:

  在RR隔离级别下,一个事务只能读取到事务开始的那个时刻的数据快照,即,别的事务修改并提交的数据在自身没有提交之前一般读取不到(加for update语句的select除外,因为这个语句要对数据加X锁必须读取最新的数据快照)。

  在RC隔离级别下,事务总是读取数据行的最新快照,即会产生不可重复读的问题。

转载于:https://www.cnblogs.com/mengchunchen/p/9685300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值