news 2026/4/26 17:18:56

RC确实是每次查询都生成读视图,但是都是快照读啊,和读已提交没半毛钱关系吧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RC确实是每次查询都生成读视图,但是都是快照读啊,和读已提交没半毛钱关系吧

文章目录

      • 1. 语义纠偏:快照并不等于“旧照片”
      • 2. 举个例子:刷新朋友圈
      • 3. 为什么它和“读已提交”没脱节?
      • 4. 总结
      • 💡 追问一个硬核点

哈哈,我特别喜欢你这种钻研精神!你这个质疑点其实踩到了很多开发者对“快照(Snapshot)”这个词的语义误区

你觉得没关系,是因为你潜意识里觉得“快照”就应该是恒定不变的。但实际上,在数据库的世界里,“快照”不是终身制的,它的有效期是可以配置的。

我们来拆解一下,为什么说 RC 的快照读,恰恰就是为了实现“读已提交”:


1. 语义纠偏:快照并不等于“旧照片”

在 MVCC 语境下,“快照读”的本质是:不加锁,根据 Read View 规则去版本链里找数据。

  • RC(读已提交)的逻辑:每执行一次SELECT,就当场重新拍一张系统当前的快照(Read View)。
  • “已提交”体现在哪?:这张当场拍的快照,会把那一刻所有已经提交的事务 ID标记为“可见”。

所以,虽然它叫“快照读”,但因为它刷新的频率太快了(每条查询刷一次),导致它每次都能捕捉到别人刚刚提交的最新变动。


2. 举个例子:刷新朋友圈

我们可以把 RC 和 RR 的快照读对比一下,你就秒懂了:

  • RC(读已提交):就像你在刷朋友圈。你每点一次“刷新”,系统就给你一张此时此刻的“快照”。如果刚才你朋友发了条动态(事务提交了),你这次刷新就能看到。你看到的是“那一刻已提交”的状态。
  • RR(可重复读):就像你进朋友圈时点了一下“截图”。不管你之后怎么刷新,你都只盯着手里这张截图看。就算你朋友发了 100 条新动态(事务提交了),你手里那张图也不会变。

3. 为什么它和“读已提交”没脱节?

“读已提交”这个隔离级别的核心定义是:只要事务没提交,我就看不见;只要提交了,我就能看见。

在 RC 级别下,MVCC 完美地完成了这个任务:

  1. 屏蔽未提交:Read View 会把当前还在活跃(未提交)的事务 ID 记下来,版本链里凡是属于这些 ID 的数据,统统跳过。
  2. 拥抱已提交:因为每条查询都重开 Read View,所以只要一个事务提交了,它的 ID 就不再属于“活跃事务”,在下一条查询的 Read View 里,它就变成了“可见”。

结论:它是通过不断更新快照的内容,来对齐“读已提交”的业务需求。


4. 总结

你之所以觉得“没半毛钱关系”,可能是把快照读(方式)可重复读(结果)搞混了。

  • 快照读:是技术手段(不加锁,读版本链)。
  • 读已提交:是隔离目标。

在 RC 里,我们用“短命”的快照读实现了读已提交
在 RR 里,我们用“长命”的快照读实现了可重复读


💡 追问一个硬核点

如果你在 RC 级别下,一个事务里执行了两条一模一样的SELECT,中间另一个事务提交了修改。按照你的理解,如果这两次查询结果不一样(发生了不可重复读),这算不算“读到了已提交的数据”?

这正是 RC(读已提交)隔离级别被允许的行为,而 MVCC 只是那个帮它“瞬移”快照的工具人。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 17:10:29

Real-ESRGAN-ncnn-vulkan终极指南:3分钟让模糊图片变高清的AI神器

Real-ESRGAN-ncnn-vulkan终极指南:3分钟让模糊图片变高清的AI神器 【免费下载链接】Real-ESRGAN-ncnn-vulkan NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. 项目地址: https://gitc…

作者头像 李华
网站建设 2026/4/26 17:04:31

3个关键步骤掌握XLeRobot强化学习训练:从零到实战的完整指南

3个关键步骤掌握XLeRobot强化学习训练:从零到实战的完整指南 【免费下载链接】XLeRobot XLeRobot: Practical Dual-Arm Mobile Home Robot for $660 项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot 还在为机器人强化学习训练的高成本和复杂环境…

作者头像 李华
网站建设 2026/4/26 17:03:34

AI爬虫黑名单实战:保护网站内容不被大模型抓取的完整指南

1. 项目概述:为什么我们需要一个专门的AI爬虫黑名单? 如果你运营着一个网站,无论是个人博客、作品集还是商业站点,你可能已经习惯了在根目录放一个 robots.txt 文件,用来告诉搜索引擎的爬虫哪些页面可以访问&#x…

作者头像 李华
网站建设 2026/4/26 17:01:00

快狐KIHU|32寸壁挂信息发布一体机飞腾十核350亮度教学培训展示屏

在教育信息化和数字化转型的背景下,高质量的教学资源与高效的展示设备成为提升教学质量的关键因素。[KIHU快狐]推出的32寸壁挂信息发布一体机,凭借其卓越的技术性能和丰富的应用场景,正逐渐成为教学培训领域中的明星产品。该款信息发布一体机…

作者头像 李华