"repeatable read" 和 "snapshot isolation" 有什么区别

What is the difference between "repeatable read" and "snapshot isolation"

可重复读取定义为

a higher isolation level, that in addition to the guarantees of the read committed level, it also guarantees that any data read cannot change, if the transaction reads the same data again, it will find the previously read data in place, unchanged, and available to read.

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

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

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

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