可重复读取定义为
一个更高的隔离级别,即除了已提交的读取级别的保证之外,它还保证任何读取的数据都不能更改,如果事务再次读取相同的数据,它将发现先前读取的数据已就位,没有变化,可以读取。
这似乎与快照隔离非常相似。
可重复读取与快照隔离级别有何不同?
发布于 2019-03-18 05:35:49
“快照”保证事务中的所有查询都将看到事务开始时的数据。
“可重复读取”只保证如果事务中的多个查询读取相同的行,那么它们每次都会看到相同的数据。(因此,不同的行可能在不同的时间被快照,这取决于事务第一次检索它们的时间。如果插入了新行,稍后的查询可能会检测到它们。)
发布于 2022-08-31 13:12:11
快照隔离在PostgreSQL和MySQL中称为“可重复读取”。它在Oracle DB中被称为“可序列化”。IBM DB2使用“可重复读取”来表示可序列化性。
SQL标准没有多年后定义的快照隔离的概念,这就是命名混乱的原因。
因此,没有人真正知道可重复阅读意味着什么。但是,我们可以合理地假设它们是同一件事。
https://stackoverflow.com/questions/55215013
复制相似问题