Mysql:Read View
在 MySQL InnoDB 中Read View读视图是 MVCC 用来判断“某个数据版本对当前查询是否可见”的规则集合。它可以理解为查询创建的一张“事务快照名单”但要注意Read View 并不会复制整张表也不保存数据本身它只记录事务可见性的边界信息。普通SELECT可以借助 Read View 读取历史版本不必等待其他事务提交也通常不需要加行锁为什么需要 Read View假设一行数据正在被其他事务修改事务 A把 balance 从 100 修改为 200但还没有提交 事务 B执行 SELECT 查询 balance事务 B 不能随便看到未提交的200否则会产生脏读。InnoDB 会通过以下信息决定读取哪个版本Read View 数据行的事务 ID Undo Log 版本链Read View 记录什么可以简化理解为四部分creator_trx_id创建 Read View 的事务 ID active_trx_ids创建时仍然活跃、未提交的事务 ID min_trx_id活跃事务中的最小事务 ID max_trx_id创建时下一个将被分配的事务 IDMySQL 源码中的具体字段名称略有不同但核心就是记录创建快照时哪些事务尚未完成以及事务 ID 的上下边界。可见性判断规则假设 Read View 创建时当前事务 ID105 活跃事务100、108 最小活跃事务 ID100 下一个事务 ID110检查某个数据版本的DB_TRX_ID时1. 是当前事务自己修改的DB_TRX_ID 105可见因为事务应该看到自己之前的修改。2. 小于最小活跃事务 IDDB_TRX_ID 90可见。说明修改这个版本的事务在 Read View 创建之前就已经提交。3. 大于等于下一个事务 IDDB_TRX_ID 110不可见。说明修改数据的事务是在 Read View 创建之后才开始的相当于“未来事务”。4. 位于两个边界之间例如DB_TRX_ID 103需要检查活跃事务列表在活跃事务列表中当时尚未提交不可见。不在活跃事务列表中当时已经提交可见。整体规则可以概括为是自己修改的 → 可见 小于最小活跃事务 ID → 可见 大于等于下一个事务 ID → 不可见 处于两者之间且仍然活跃 → 不可见 处于两者之间但已经提交 → 可见当前版本不可见怎么办InnoDB 聚簇索引记录中包含两个隐藏字段DB_TRX_ID最后修改该行的事务 ID DB_ROLL_PTR指向 Undo Log 中的历史版本如果当前记录对 Read View 不可见InnoDB 会沿着DB_ROLL_PTR找到更旧的版本最新版本事务 108 修改不可见 ↓ Undo Log 旧版本事务 103 修改可见 ↓ 返回旧版本这就是 MVCC 的多版本读取过程。MySQL 源码也会根据 Read View 检查记录事务 ID并在版本不可见时通过 Undo Log 构造旧版本。

相关新闻

共享会话存储

共享会话存储

这里的核心概念是:会话共享存储(shared session storage)。用户登录以后,服务器需要保存一些与该用户当前访问相关的状态,例如:session_id: abc123 user_id: 9527 is_logged_in: true shopping_cart: [商品…

2026/8/10 3:04:31 阅读更多 →
极简架构设计与微服务拆分:升级前先做这几项确认

极简架构设计与微服务拆分:升级前先做这几项确认

极简架构设计与微服务拆分:升级前先做这几项确认 当团队考虑把单体应用拆成多个微服务时,代码库变大、协作冲突和构建变慢往往会被当作主要理由。 在决定拆分前,至少要回答三个具体问题: 拆开之后,订单和库存跨服务的分…

2026/8/10 3:04:31 阅读更多 →
智慧排水系统:物联网与AI技术在城市防涝中的应用

智慧排水系统:物联网与AI技术在城市防涝中的应用

1. 项目概述:城市排水系统的智能化革新 在暴雨频发的季节,我们总能看到"城市看海"的新闻。传统排水系统就像一位反应迟缓的老人,面对突如其来的水量变化往往力不从心。而智慧排水系统则如同给这位老人装上了智能大脑和灵敏感官&…

2026/8/10 3:03:31 阅读更多 →

最新新闻

Vue3 检索增强应用选型:轻量级 Vector 客户端与服务端 RAG 的架构权衡

Vue3 检索增强应用选型:轻量级 Vector 客户端与服务端 RAG 的架构权衡

Vue3 检索增强应用选型:轻量级 Vector 客户端与服务端 RAG 的架构权衡 检索增强应用常在两种方案之间取舍:在浏览器中运行向量模型和索引,或由服务端 Vector DB 提供检索并通过 Server-Sent Events(SSE)返回结果。 端侧…

2026/8/10 4:02:01 阅读更多 →
字母异位词分组算法解析与优化实践

字母异位词分组算法解析与优化实践

1. 字母异位词分组问题解析 遇到字符串处理问题时,字母异位词分组是个经典案例。我在刷LeetCode Hot 100时发现这道题考察点很全面,既考验基础编码能力,又需要巧妙的算法优化思路。这道题要求将给定字符串数组中的字母异位词组合在一起&#…

2026/8/10 4:02:01 阅读更多 →
降低技术工具使用门槛:从“能量-能耗”模型设计低摩擦工作流

降低技术工具使用门槛:从“能量-能耗”模型设计低摩擦工作流

你有没有过这样的体验:明明知道某个工具、某个方法能提升效率,但就是提不起劲去用?或者,你精心准备了一套“最佳实践”分享给团队,大家听完都说好,可一个月后,发现没几个人真的在用。问题可能不…

2026/8/10 4:02:01 阅读更多 →
Netcat网络工具:从基础使用到安全实践

Netcat网络工具:从基础使用到安全实践

1. 网络工程师的"口袋神器":Netcat初探第一次接触Netcat是在2013年的一次应急响应中,当时客户的内网服务器被入侵,所有常规远程管理工具都被攻击者卸载。在近乎绝望的情况下,一位前辈递给我一个不到100KB的可执行文件—…

2026/8/10 4:02:01 阅读更多 →
C语言未定义行为解析与防范指南

C语言未定义行为解析与防范指南

1. C语言未定义行为:程序员必须警惕的暗礁第一次遇到未定义行为是在大学二年级的C语言实验课上。当时我花了整整三个晚上调试一个看似简单的链表程序,每次运行时输出结果都不同,甚至在不修改代码的情况下,程序时而崩溃时而正常运行…

2026/8/10 4:02:01 阅读更多 →
SQLSugar:高性能.NET ORM框架的核心优势与实践

SQLSugar:高性能.NET ORM框架的核心优势与实践

1. 为什么选择SQLSugar作为.NET ORM框架在.NET生态系统中,ORM框架的选择往往让开发者陷入"选择困难症"。SQLSugar作为国产ORM的佼佼者,最近在.NET Core项目中获得了越来越多的采用。根据我在三个企业级项目中的实战经验,SQLSugar的…

2026/8/10 4:01:01 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →