[英]Differences between TRANSACTION's levels: READ WRITE and ISOLATION LEVEL SERIALIZABLE
这两个事务级别之间的区别是: READ WRITE
和ISOLATION LEVEL SERIALIZABLE
? 据我了解, READ WRITE
允许脏读,而ISOLATION LEVEL SERIALIZABLE
可以防止其他用户更改数据(认为我在这里错了),或者只是读取在事务开始时可用的数据(看不到数据,在我进行交易时其他用户已更改了该数据)。
您可以在oracle站点上找到有关此主题的详细信息。
基本上, READ COMMITTED
允许“不可重复读取”和“幻像读取”,而SERIALIZABLE
均禁止。
如果允许不可重复读取,则同一事务内部的同一SELECT查询可能会根据发出查询的时间返回不同的结果。 其他并行事务可能会更改数据,并且此更改在您的事务内部可能会变得可见。
如果允许幻像读取,则可能发生以下情况:当您在一个事务中两次发出相同的SELECT查询,而另一个事务并行地将行插入表中时,这些行可能在事务内部可见,但仅在第二选择。 因此,同一条select语句将在第一次执行时返回例如5
行,在第二次执行时返回10
行。
这两个属性是相似的,但第一个属性仅说明可能更改的数据,而scond属性则说明可能返回的其他行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.