如果我以READ UNCOMMITTED
隔离级别打开交易,是否可以确保在每个表/行上看到最新数据?即只要其他交易连续更新,我的交易记录就会看到这种变化吗? (这类似于对主存储器的直写)
甚至可能是我的SELECT
会包含一行{strong> UPDATE
的一部分,但不是全部吗?在这种情况下,原子更新/读取的最小元素是什么?
各种关系数据库系统之间是否存在差异?
答案 0 :(得分:2)
不。 “脏数据”意味着您依赖数据库的内部,因此无法保证。可以将数据写入数据页,然后由于事务回滚而将其删除。可以将数据写入数据页-然后在同一事务中的后续步骤可能会覆盖它。
此外,您所要求的是不可能的。您的查询可能正在扫描整个表。您的阅读是在页面级别进行的。每个页面可能是不同的交易合并,没有一致性。