可序列化和可重复读取隔离级别之间有什么区别?

Cel*_*tas 37 sql database

可序列化和可重复读取隔离级别之间有什么区别?任何人都可以举一个简单的例子.

Tha*_*amy 33

摘要:

在可重复读取隔离级别中,可以将新行插入到数据集中.

在Serializable隔离级别中,所有行在事务持续期间都被锁定,不允许插入,更新或删除.

请参考此示例和说明

隔离级别 - 可序列化

http://beyondrelational.com/modules/2/blogs/28/posts/10467/sql-server-transaction-isolation-level-serializable.aspx

隔离级别 - 可重复读取

http://beyondrelational.com/modules/2/blogs/28/posts/10466/sql-server-transaction-isolation-level-repeatable-read.aspx

  • 链接已损坏 (5认同)

小智 8

可重复读取仅防止不可重复读取(因此您可以在同一事务中读取相同的数据,而不必担心有人更改它 - 即使它很少需要这样做).

Serializable可以防止不可重复的读取和幻像行(因此您甚至无法插入数据).这意味着您可以读取和写入(SELECT,UPDATE)可序列化事务中未包含的行,但不能在TABLE级别上删除或插入行.

可重复读取和可序列化都非常严格,并不总是需要它们!