MVCC(多版本并发控制)是一种数据库并发控制机制,旨在提高数据库的并发性,避免锁定操作,从而减少等待和提高性能。MVCC 主要解决数据库读写操作之间的线程安全问题。
MVCC 主要有两种读取数据的方式:
快照读(Snapshot Read) :
当前读(Current Read) :
SELECT ... FOR UPDATE 或 SELECT ... LOCK IN SHARE MODE 进行当前读,或在更新、插入和删除操作中使用排他锁。MVCC 的优势在于它允许读取操作并发执行而不争夺锁,从而提高了数据库的并发性和性能。同时,MVCC 也能够保证数据的一致性,因为它允许读取到历史版本的数据,而不会读取到正在被其他事务修改的数据。