您的当前位置:首页 >系统运维 >面试官:说说MVCC的执行原理? 正文
时间:2025-11-05 11:24:18 来源:网络整理编辑:系统运维
MVCCMulti-Version Concurrency Control)是一种并发控制机制,用于解决数据库并发访问中,数据一致性问题。它通过在读写操作期间保存多个数据版本,以提供并发事务间的隔离性

MVCC(Multi-Version Concurrency Control)是面试一种并发控制机制,用于解决数据库并发访问中,官说数据一致性问题。执行它通过在读写操作期间保存多个数据版本,原理以提供并发事务间的面试隔离性,从而避免了传统的官说锁机制所带来的资源争用和阻塞问题。
所谓的执行一致性问题,就是原理在并发事务执行时,应该看到那些数据和不应该看到那些数据。面试
在 MVCC 机制中,官说每个事务的执行读操作都能看到事务开始之前的一致性数据快照,而不受其他并发事务的原理修改的影响。核心思想是面试通过创建多个数据版本,保持事务的官说一致性和隔离性。
使用 MVCC 机制解决了 RR 隔离级别中,执行部分幻读问题,但又没把全部幻读问题都解决。
MVCC 解决了 RR 隔离级别中,快照读的幻读问题。多次查询快照读时,因为 RR 级别是服务器租用复用 Read View(读视图),所以没有幻读问题。但 MVCC 解决不了 RR 隔离级别中,如果遇到快照读和当前读(读取当前最新的数据)中间发生过添加操作,那么 Read View 不能复用,就出现了幻读的问题。快照读:是指在一个事务中,读取的数据版本是在事务开始时已经存在的数据版本,而不是最新的数据版本。这种读取方式提供了事务在执行期间看到的数据视图的一致性,select 查询就是快照读。当前读:是指在事务中读取最新的数据版本,以下几种操作都是当前读:
select ... for update;select ... lock in share mode;insert ...update ...delete ...MVCC 主要是依靠以下两部分实现的:
Undo Log 链Read View(读视图或者叫一致性视图)我们知道 Undo Log 主要是用于数据库中事务回滚的,但在 MVCC 机制中也发挥着重要的作用,服务器托管那什么是 Undo Log 链呢?
Undo Log 链是指在每个数据对象上维护的 Undo Log 记录链表。每张表都会有与之相对应的 Undo Log 链,用于记录修改前的数据信息(以方便数据进行回滚)。

Read View(读视图)用于管理事务之间数据可见性的一种机制。Read View 在特定时刻为事务创建的一个快照,该快照包含了在该时刻所有未提交事务的事务标识符,以及其他一些辅助信息。
在 Read View 中包含了以下 4 个主要的字段:
m_ids:当前活跃的事务编号集合。min_trx_id:最小活跃事务编号。max_trx_id:预分配事务编号,当前最大事务编号+1。creator_trx_id:ReadView 创建者的事务编号。RC 级别中,每次快照读都会生成一个全新的 Read View,而 RR 级别中同一个事务会复用一个 Read View。
有了 Read View 和 Undo Log 链之后,并发事务在查询时就知道要读取那些数据了。
判断方法是根据 Read View 中的 4 个重要字段,先去 Undo Log 中最新的b2b信息网数据行进行比对,如果满足下面 Read View 的判断条件,则返回当前行的数据,如果不满足则继续查找 Undo Log 的下一行数据,直到找到满足的条件的数据为止,如果查询完没有满足条件的数据,则返回 NULL。
以上判断规则从 Undo Log 最新的行数据,逐行对比,直到找到匹配的数据,否则查询完未匹配上,则返回 NULL。
MVCC 的实现主要依赖读视图 Read View 和 Undo Log 链,通过 Read View 中的 4 个字段,判断要读取 Undo Log 中数据,从而解决了数据库并发访问中,数据一致性的问题。
MVCC 主要应用于 InnoDB 引擎中的 RC 事务隔离级别和 RR 隔离级别,其中 RC 隔离级别每次快照读都会生成一个新的 Read View,而 RR 隔离级别只在第一次快照读时生成 Read View,之后会复用 Read View,从而解决了(部分)幻读问题。
以莱可传媒(深入剖析以莱可传媒的成功之道)2025-11-05 11:18
从U盘启动UEFI制作教程(一步步教你制作启动U盘并进入UEFI模式)2025-11-05 11:18
使用U盘快速安装WindowsXP系统的完整教程(以U盘启动安装XP系统,轻松操作无需光驱)2025-11-05 10:57
探索戴尔E5530的性能和功能(一款强大的商务笔记本电脑解析)2025-11-05 10:10
华为魅九(华为魅九的卓越表现引领手机行业)2025-11-05 10:02
Win7镜像U盘安装教程(详细教你如何使用Win7镜像制作U盘安装盘)2025-11-05 09:54
U盘电脑店装系统教程(简单易学的U盘装系统方法,让你轻松解决电脑系统问题)2025-11-05 09:17
三星S6移动双卡使用体验(便捷的双卡功能助力日常生活)2025-11-05 08:52
电脑声卡安装教程(轻松安装电脑声卡,享受高品质音效)2025-11-05 08:42
探索360竞拍(了解360竞拍的优势和使用技巧,尽享独特的购物乐趣)2025-11-05 11:19
小白也能轻松装32位系统!(详解U盘安装32位系统教程,让您快速上手)2025-11-05 10:58
联想官网驱动安装教程(一站式指南,简便高效地完成联想电脑驱动的安装更新)2025-11-05 10:32
以鸡年年头为主题的文章(迎接鸡年的好兆头与庆祝活动)2025-11-05 10:31
小新教你如何进行电脑新机验机(掌握电脑新机验机的步骤和注意事项,尽在小新的教程中)2025-11-05 10:26
华硕FX笔记本电脑的性能和特点(探索华硕FX笔记本电脑的强大功能与用户体验)2025-11-05 10:24
谷津U4(开启智慧生活,探索无限可能)2025-11-05 10:09
如何正确安装正版电脑系统(详细教程及步骤,让你安心使用电脑)2025-11-05 09:58
周大生珠宝K金项链之精致华美(时尚潮流中的完美佩戴选择)2025-11-05 09:42
固态硬盘安装系统教程(用光驱安装系统的步骤和注意事项)2025-11-05 09:19