丢失的更新与不可重复的读取有何不同?

问题描述 投票:0回答:2

正在尝试了解隔离级别和各种问题.....即脏读,不可重复读,幻像读和更新丢失。正在阅读有关Non repeatable read的信息>

还读过Lost update

[令我感到困惑的是,这两个看起来都很相似,即在NRR(不可重复读取)中,Tx B通过Tx A更新了同一行两次读取之间的行,因此Tx A获得了不同的结果。

[如果丢失更新-Tx B覆盖Tx A提交的更改因此在我看来,这两者似乎非常相似且相关。正确吗?

我的理解是,如果我们使用“乐观锁定”,它将防止出现“丢失更新”的问题(基于一些非常好的答案here

我的困惑:但是,这是否也意味着/意味着通过使用“乐观锁定”,我们还消除了“不可重复读取”的问题?所有这些问题都与带有Oracle数据库的Java J2EE应用程序有关。

注意:为避免分心,我不是在寻找与脏读和幻像读有关的详细信息-我目前的重点完全放在不可重复的读和丢失的更新上

正在尝试了解隔离级别和各种问题.....即脏读,不可重复读,幻像读和更新丢失。正在阅读有关不可重复阅读的内容,也曾阅读过有关...

java oracle transactions locking optimistic-locking
2个回答
0
投票

不可重复的读取,丢失的更新,幻像读取以及脏读取与事务isolation levels有关,而不是悲观/乐观锁定。我相信Oracle的默认隔离级别是已提交读,这意味着只能防止脏读。


0
投票

可重复读取的目的是提供读取一致的数据:

© www.soinside.com 2019 - 2024. All rights reserved.