Bootstrap

【MVCC过程中会加锁吗?】


在MVCC(Multi-Version Concurrency Control,多版本并发控制)过程中, 通常不需要加锁来控制并发访问

MVCC是一种数据并发控制技术,它允许在不同的事务中对同一数据进行并发访问,而不需要使用锁。这种机制通过保存数据的多个版本来支持并发读写操作,从而提高数据库的并发性能。

一、MVCC的工作原理

  • 版本链:在InnoDB引擎中,每一行数据都有两个隐藏字段:trx_ID(事务ID)和roll_pointer(回滚指针)。trx_ID记录最后一次修改该行的事务ID,roll_pointer指向该行的上一个版本,这些版本信息存储在undo日志中。通过roll_pointer,可以追溯到行的旧版本,形成版本链。

  • Read View:Read View是一个事务开始时数据库快照的一致性状态,它用于确定事务在执行期间能够看到哪些数据版本。这样,读操作不会阻塞写操作,写操作也不会阻塞读操作。

;