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时创建视图
相关推荐
jiayou644 小时前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE1 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr1 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
唐青枫2 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
吃糖的小孩2 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
小满8782 天前
5.Mysql事务隔离级别与锁机制
mysql
笃行3503 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3503 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3503 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
元Y亨H3 天前
技术笔记:MySQL 字符集排序规则与大小写敏感性问题解决方案
mysql