SQL:是否保证读脏数据能够看到最新数据?

时间:2019-01-24 07:30:44

标签: sql transactions atomicity acid

如果我以READ UNCOMMITTED隔离级别打开交易,是否可以确保在每个表/行上看到最新数据?即只要其他交易连续更新,我的交易记录就会看到这种变化吗? (这类似于对主存储器的直写)

甚至可能是我的SELECT会包含一行{strong> UPDATE的一部分,但不是全部吗?在这种情况下,原子更新/读取的最小元素是什么?

各种关系数据库系统之间是否存在差异?

1 个答案:

答案 0 :(得分:2)

不。 “脏数据”意味着您依赖数据库的内部,因此无法保证。可以将数据写入数据页,然后由于事务回滚而将其删除。可以将数据写入数据页-然后在同一事务中的后续步骤可能会覆盖它。

此外,您所要求的是不可能的。您的查询可能正在扫描整个表。您的阅读是在页面级别进行的。每个页面可能是不同的交易合并,没有一致性。