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

MYSQL中读提交的理解

把数据库想像成一个多人合住的图书馆,每本书就是一条记录。  
“读提交”(Read Committed)就是图书馆给读者立的一条规则:  
你可以随便翻书,但永远只能看到“已经办妥借还手续、正式上架”的版本——别人正在改的那本脏兮兮草稿,你一眼都看不到。

下面用 4 张图 + 一句口诀让你秒懂:

1. 时间线:两个读者(事务 A、B)同时想读/改同一本书。  
```
时间 →
────────────────────────────────
T1  事务 A 开始
T2  事务 B 开始
T3  事务 B 把《算法导论》第 3 页改成 42(未 commit)
T4  事务 A 想读第 3 页
T5  事务 B commit(把新页正式上架)
T6  事务 A 再读第 3 页
```

2. 读提交如何保证?  
• 快照机:图书馆给每个读者发一副“时间眼镜”。  
• 规则:眼镜只能看到“已 commit”的页,未 commit 的草稿自动过滤。  

3. 结果:  
• T4 时 A 戴上眼镜 → 第 3 页还是旧值(因为 B 未 commit)。  
• T6 时 A 再戴眼镜 → 第 3 页已变成 42(因为 B 已 commit)。  

   一句话口诀:“读提交,读已交;别人没交,你当没瞧。”

4. 防脏读、允许不可重复读:  
• 脏读(Dirty Read)——读到未 commit 的数据 → 被禁止。  
• 不可重复读(Non-repeatable Read)——同一事务里两次读结果不同 → 被允许,因为每次读都重新戴“最新已提交”眼镜。

就这么简单:读提交=“只看上架书,不看草稿”。

http://www.dtcms.com/a/338374.html

相关文章:

  • MySQL新手教学
  • lesson41:MySQL数据库进阶实战:视图、函数与存储引擎全解析
  • springBoot启动报错问题汇总
  • OVS:ovn是如何支持组播的?
  • LwIP 核心流程总结
  • wishbone总线
  • thinkphp8:一、环境准备
  • c++26新功能—可观测检查点
  • torch.nn.Conv1d详解
  • C++最小生成树
  • 高等数学 8.5 曲面及其方程
  • Python打卡Day45 预训练模型
  • 【加密PMF】psk-pmk-ptk
  • 【168页PPT】IBM五粮液集团数字化转型项目实施方案建议书(附下载方式)
  • 块体不锈钢上的光栅耦合表面等离子体共振的复现
  • 九联科技UMA223-H低功耗蜂窝模组在物联网设备中的应用与价值分析
  • 信号上升时间Tr不为0的信号反射情况
  • 工具集成强化学习:AI数学推理能力的新跃迁
  • Milvus向量数据库安装步骤
  • DRG/DIP支付改革如何通过大数据分析优化病种分组和权重调整?
  • 知识蒸馏 - 各类概率分布
  • CPP异常
  • 公司无公网IP,如何将内网服务,给外面异地连接使用?远程办公可通过什么访问?
  • 内联汇编(Inline Assembly)是什么?
  • redis命令行学习
  • Linux重要目录结构及目录命令
  • Vue3 中的 provide 和 inject 详解:实现跨组件通信
  • 运用4种填充方法补充缺失数据的案例
  • redis的过期键有哪些删除策略
  • Product Hunt 每日热榜 | 2025-08-18