MVCC的理解

it2024-11-13  3

MVCC

MVCC的理解

mcc就是多版本并发控制,用在数据库中,对数据库的访问进行并发控制

使用场景

只用在已提交读和可重复读中(行锁)两种隔离级别

为什么要用MVCC

我们都知道锁用来控制多线程并发的,但是系统开销比较大,所以就用mvcc来代替行锁,减少系统的开销

MVCC实现方式

利用乐观锁和悲观锁来实现

乐观锁和悲观锁

乐观锁每次操作数据都不会上锁,有两种实现方式,版本号机制和cas机制,版本号机制就是通过更新信息的时候添加版本号来实现,cas机制就是通过比较内存中的值来决定它是否需要更新。cas会产生aba问题,就是一个线程在另一个线程未知的情况下,数据从a修改为b又修改为a,可以用版本号机制来解决。悲观锁每次操作数据都会上锁。

最新回复(0)