MySQL 知识 -- 并发控制

本文最后更新于:4 分钟前

并发控制

  • 悲观并发控制

  • 乐观并发控制

  • MVCC (Multi-Version Concurrency Control)

    多版本并发控制(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,无需使用 MVCC。可串行化隔离级别需要对所有读取的行都加锁,单纯使用 MVCC 无法实现。

    MVCC 使得每一个写操作都会创建一个新版本的数据,读操作会从有限多个版本的数据中挑选一个最合适的结果直接返回

    MVCC(Multi-version concurrency control) 就是 同一份数据临时保留多版本的一种方式,进而实现并发控制

    在RR级别中,通过MVCC机制,虽然让数据变得可重复读,但我们读到的数据可能是历史数据,不是数据库最新的数据。这种读取历史数据的方式,我们叫它快照读 (snapshot read),而读取数据库最新版本数据的方式,叫当前读 (current read)。

    快照读会出现幻读的情况,而使用 MVCC + next_key_lock 可以解决 RR 下的幻读问题