news 2026/6/10 17:07:30

MySQL的MVCC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL的MVCC

什么是MVCC:

MVCC是多版本并发控制器,是通过记录历史半本书,解决读写并发冲突问题,避免了读数据时加锁,提高了事务的并发性能。

讲历史数据存储在undo log中,结构逻辑上类似于一个链表,MySQL数据行上的两个隐藏列,一个是事务ID,一个是指向undo log的指针

事务开启后,执行第一条select语句的时候,会创建ReadView,ReadView记录了当前未提交的事务。通过与历史数据的事务ID进行比较,就可以根据可见性规则进行判断,判断这条记录是否可见,如果可见就直接将这条数据返回个客户端,如果不可见就继续王undo log版本链查找第一个可见的数据。

我们每一条记录都有两个隐藏列,一个是事务ID,一个是指向历史数据undo log的指针,然后ReadView有四个字段,分别是创建ReadView的事务ID,活跃事务ID列表,活跃事务ID列表中的最小ID,下一个事务ID。主要有这几种判断规则:

  • 如果记录事务的ID小于活跃事务ID列表中的最小ID,就说明记录在创建ReadView前就生成好了,所以该记录当前事务是可见的。
  • 如果记录事务的ID大于等于下一个事务的ID,就说明该记录是在创建ReadView后才生成的, 所有该记录是当前事务不可见的。
  • 如果记录隐藏列的事务ID在最小的ID和下个事务的ID之间,这时候就需要看记录的事务ID是否在活跃事务的ID列表中
    • 如果记录的事务ID在活跃事务的ID列表中,说明修改该记录的事务还没提交,所以该记录是不可见的
    • 如果记录的事务ID不在活跃事务ID的列表中,说明修改记录的事务已经提交了,那么该记录就是可见的。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:21:13

智能体来了(西南总部):Agent失序下的AI Agent指挥官与AI调度官

一、核心摘要随着人工智能从单一模型能力演进为多智能体协作形态,AI Agent 正在成为应用层与数字基础设施之间的关键执行单元。当前普遍面临的问题是:智能体数量快速增长,但缺乏统一指挥、调度与约束机制,导致任务冲突、资源浪费与…

作者头像 李华
网站建设 2026/6/10 11:34:31

Windows 11、10 电脑关机故障的原因找到了,微软已经开始准备修复补丁

2026 年 1 月对微软和 Windows 更新而言堪称一场灾难:公司几乎每周都会确认新漏洞的出现。其中一些问题确实非常严重,例如系统因“UNMOUNTABLE_BOOT_VOLUME”错误而无法启动;另一些则近乎荒诞,比如电脑无法正常关机或进入休眠状态…

作者头像 李华
网站建设 2026/6/10 16:51:06

YOLO26原创自研 | 自研独家创新BSAM注意力 ,基于CBAM升级

💡💡💡本文原创自研改进:提出新颖的注意力BSAM(BiLevel Spatial Attention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的 BiLevel Attention+Spartial Attention 💡💡💡本文改进:1)作为注意力机制…

作者头像 李华
网站建设 2026/6/10 16:50:18

选型不盲目,部署更高效!企业智能预入职软件一体化解决方案

在企业人力资源管理数字化转型过程中,入职环节的效率与体验直接影响人才留存与企业口碑。一体化智能预入职软件通过整合信息采集、流程审批、员工引导等功能,成为优化入职管理的核心工具。但不少企业在选择与部署时,常面临功能匹配度低、流程…

作者头像 李华
网站建设 2026/6/10 15:19:40

fnOS 飞牛云 NAS 本地部署私人影视库 MoonTV 并实现外部访问

MoonTV 是一款影视聚合播放器。这款播放器集成了数十个免费站点资源,让你随时随地都能找到最新的热门电影、美剧、韩剧、动漫等等,更重要的是没有广告,不需要开通会员。本文将详细的介绍如何在 fnOS 飞牛云本地部署 MoonTV 并结合路由侠实现外…

作者头像 李华