MySQL 多版本并发控制「 MVCC 」

摘要

在 InnoDB 引擎下,运行同一行内容在不同事务之间读写互不干扰,这是我们经常会碰到的业务场景,它也被认为是理所当然的。而这一特性的实现其实会比描述起来复杂得多。

MVCC 就是允许在特定隔离级别的 InnoDB 引擎下,对事务执行一致的读操作。避免了并发事务下对一般类型查询的锁竞争,也是一种增强并发事务读写能力的功能。

就像一位称职的摄像师,在你每个人生的高光点都会按下快门记录当下与之前的影像。

它本质上就是一个链表,每一行内容的版本都指向上一个版本,其中除了数据本身,还包含了事务可见性的信息在内,这些可见性信息用于判断哪个版本才能对当前的查询可见。

欢迎在评论区写下你对这篇文章的看法。

评论

ホーム - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-27 16:45
浙ICP备14020137号-1 $お客様$