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

Anu*_*rma 6 sql database isolation-level

可重复读定义为

更高的隔离级别,即除了保证读提交级别外,还保证读到的任何数据都不会发生变化,如果事务再次读取相同的数据,会发现之前读到的数据就位,不变,可用阅读。

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

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

rua*_*akh 16

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

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