首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“可重复读取”和“快照隔离”有什么区别?

“可重复读取”和“快照隔离”有什么区别?
EN

Stack Overflow用户
提问于 2019-03-18 05:29:20
回答 2查看 2.5K关注 0票数 15

可重复读取定义为

一个更高的隔离级别,即除了已提交的读取级别的保证之外,它还保证任何读取的数据都不能更改,如果事务再次读取相同的数据,它将发现先前读取的数据已就位,没有变化,可以读取。

这似乎与快照隔离非常相似。

可重复读取与快照隔离级别有何不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-18 05:35:49

“快照”保证事务中的所有查询都将看到事务开始时的数据。

“可重复读取”只保证如果事务中的多个查询读取相同的行,那么它们每次都会看到相同的数据。(因此,不同的行可能在不同的时间被快照,这取决于事务第一次检索它们的时间。如果插入了新行,稍后的查询可能会检测到它们。)

票数 23
EN

Stack Overflow用户

发布于 2022-08-31 13:12:11

快照隔离在PostgreSQL和MySQL中称为“可重复读取”。它在Oracle DB中被称为“可序列化”。IBM DB2使用“可重复读取”来表示可序列化性。

SQL标准没有多年后定义的快照隔离的概念,这就是命名混乱的原因。

因此,没有人真正知道可重复阅读意味着什么。但是,我们可以合理地假设它们是同一件事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55215013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档