当前位置: 首页 > news >正文

Read View 在 MVCC 里如何工作的?

把数据库想象成一间“时间照相馆”。  
每当你开启一个事务,前台就给你拍一张“快照门票”(Read View),上面写了三行关键信息:

1. 此刻正在活跃(还没提交)的所有事务 ID 列表  
(仍在暗房里洗照片的客人名单)  
2. 下一个将分配的事务 ID(下一位客人的号码)  
3. 你自己的事务 ID(你的号码)

拿着这张门票,你可以随便翻阅整本相册(数据所有历史版本),但只看**符合规则的旧照片**——这就是 MVCC 的魔法。

------------------------------------------------
一条顺口溜:  
“号码比我小,且不在黑名单,才给我看;否则往前翻更早的照片。”

------------------------------------------------
直观三步:

1. 每行数据自带两个隐藏列:  
`created_by` = 拍这张照片的事务号  
`deleted_by` = 撕掉这张照片的事务号(没撕就是空)

2. 你拿着门票比对:  
• 如果 `created_by` ≥ 我的「下一位号码」→ 这张照片是未来人拍的,跳过。  
• 如果 `created_by` 在我的活跃名单里 → 拍照的人还没结账,跳过。  
• 如果 `deleted_by` 存在且 ≤ 我的事务号 → 这张照片已被我或更早的人撕掉,跳过。  

   只有通过全部过滤的那一张,才是你在当前快照里能看到的版本。

3. 不同隔离级别换门票:  
• Read Committed:每次查询都重新拍一张门票(读取最新已提交)。  
• Repeatable Read:整个事务只用最开始的门票(保证可重复读)。

------------------------------------------------
一页图就记住:

```
门票(Read View)
┌────────┬────────────┐
│ 我的ID │   100      │
│ 活跃ID │ 97 98 99   │
│ 下一ID │   101      │
└────────┴────────────┘

数据行各版本
┌─数据值─┬created_by┬deleted_by┐
│  Alice │    96    │   —      │ ← 给你看(96 < 100 且不在活跃)
│  Bob   │    98    │   —      │ ← 不给你看(98 在活跃)
│  Carol │    95    │   99     │ ← 不给你看(被 99 撕了)
└────────┴──────────┴──────────┘
```

就这么简单:Read View 就是一张“时间过滤门票”,MVCC 靠它让你看到过去某一瞬间的一致世界。

http://www.lryc.cn/news/624390.html

相关文章:

  • 《C++异常处理完全指南》
  • 如何在 Ubuntu 24.04 或 22.04 LTS 上安装 PowerShell
  • Spring Boot 实用小技巧:多级缓存(Caffeine + Redis)- 第545篇
  • 【网络安全实验报告】实验四: PGP邮件加密软件应用
  • C++STL之list详解
  • 【Linux指南】gcc/g++编译器:从源码到可执行文件的全流程解析
  • 8.18 机器学习-决策树(1)
  • goland怎么取消自动删除未使用的包
  • SWMM排水管网水力、水质建模及在海绵与水环境中的应用技术-模拟降雨和污染物质经过地面、排水管网、蓄水和处理
  • 【前端面试题】JavaScript 核心知识点解析(第一题到第三十题)
  • 2025 世界机器人大会启示录:机构学 × AI × 视频链路的融合之路
  • 从零开始部署经典开源项目管理系统最新版redmine6-Linux Debian12
  • 粉刷房子(简单多状态dp问题)
  • 场外期权的股票停牌了怎么处理?
  • 226. 翻转二叉树
  • 《Unity Shader入门精要》学习笔记二
  • IOPaint 远程修图:cpolar 内网穿透服务实现跨设备图片编辑
  • 旧物回收小程序的商业变现路径探索
  • LeetCode 刷题【45. 跳跃游戏 II】
  • nuScence数据集
  • AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
  • 【2025CVPR-目标检测方向】RaCFormer:通过基于查询的雷达-相机融合实现高质量的 3D 目标检测
  • 机器学习(决策树)
  • 【音视频】瑞芯微、全志芯片在运动相机和行车记录仪产品分析
  • 从决策树基础到熵与信息增益
  • 机器学习的多种算法
  • 常见的光源频闪控制方式
  • 20. 云计算-Service MeshServerless
  • 用本地代理 + ZIP 打包 + Excel 命名,优雅批量下载跨域 PDF
  • 基于 ONNX Runtime 的 YOLOv8 高性能 C++ 推理实现