MVCC机制简介

  1. 概述
    MVCC(Multi-Version Concurrency Control)多版本并发控制,是MYSQL数据库提供的一种提高读写效率的机制,目的是尽量让写操作不阻塞读操作,并且读操作只能读可见版本的数据。

概念解析

  • 快照读
    指普通的select动作,只读select时的数据快照版本,后续修改不可见
  • 当前读
    指select for update 、select in share mode动作,会对读取的行记录加锁,保证读取的是最新版本的数据。在Repeatable Read可重复读隔离级别下,MVCC还会结合间隙锁来避免当前读出现幻读(即读到其他并行事务新增的数据行)
  1. 机制
    利用递增的事务id标识数据的版本,通过数据行的隐藏字段(最新写入事务id、undolog上一个版本指针)、读操作时生成Read View视图(表示了可见的事务id范围)以及undolog中的数据版本链来实现
  2. 不同隔离级别下的实现差异
  • 读已提交
    每次select都会创建视图
  • 可重复读
    只在事务内第一次select时创建视图
相关推荐
山岚的运维笔记11 分钟前
mysql 专业笔记 -- 第 1 章:MySQL 入门
运维·数据库·笔记·后端·学习·mysql·dba
IT小白杨12 分钟前
TikTok小店防封号浏览器实战:2026年多店铺环境隔离与账号安全运营技术解析
开发语言·数据库·安全·php·chrome devtools·指纹浏览器
祢真伟大16 分钟前
Oracle含LOB大字段表的存储占用统计
数据库·oracle
Inhand-Victor33 分钟前
从 CAN 总线到 AWS IoT:EC312 边缘计算网关实现 CAN 数据云端接入
数据库
吃饱了得干活43 分钟前
MySQL 内核剖析:ACID 实现、引擎对决、B+树、索引与主从复制闭环
后端·mysql
活跃的煤矿打工人1 小时前
【星海出品】SQLite的进阶操作
数据库·sqlite
云祺vinchin1 小时前
医疗行业灾备实践:一套方案实现HIS、EMR、PACS系统安全闭环
数据库·安全·数据备份·医疗安全·容灾备份
梦想不只是梦与想1 小时前
MySQL 中的窗口函数
数据库·mysql·窗口函数
严同学正在努力1 小时前
Oracle数据技术运维大全(下篇)
运维·数据库·ai·oracle·架构