You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SELECT查询:Snapshot与Read Uncommitted隔离级别对比及性能结果疑问

Read Uncommitted与Snapshot隔离级别的性能和结果差异

性能对比

Read Uncommitted确实通常比Snapshot隔离级别更快,核心原因在于两者的实现逻辑差异:

  • Read Uncommitted完全跳过一致性视图处理,直接读取数据页上的最新版本,不需要维护或查询数据的版本链,也没有快照相关的元数据开销。
  • Snapshot隔离级别需要读取事务启动时刻的一致性快照,数据库要持续维护数据的多版本链,查询时还要在版本链中定位到对应时间点的有效数据,这些额外操作会带来一定的性能损耗。

查询结果一致性

这两种隔离级别的SELECT查询结果几乎不可能一致,差异源于数据可见性规则的本质不同:

  • Read Uncommitted允许读取其他事务未提交的修改(即脏读),只要数据页上有最新的修改,不管提交与否都会被读到。
  • Snapshot隔离级别保证读取的是事务启动时所有已提交数据的快照,既看不到未提交的修改,也看不到当前事务启动后其他事务提交的修改。

举个实际场景:事务A修改了一条记录的字段值但未提交,此时用Read Uncommitted查询会直接读到修改后的值;而用Snapshot查询,结果还是这条记录修改前的原始值。

内容的提问来源于stack exchange,提问作者user1785960

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:12:35