代码之家  ›  专栏  ›  技术社区  ›  domin

SQL:脏读保证能看到最新的数据吗?

  •  0
  • domin  · 技术社区  · 6 年前

    如果我在 READ UNCOMMITTED 隔离等级,我能保证看到 每个表/行的最新数据 ?也就是说,当其他事务更新一行时,我的事务将看到该更改?(这类似于对主存储器的写入操作)

    可能是我的 SELECT 将得到一行包含 部分 UPDATE 但不是全部?在这种情况下,原子更新/读取的最小元素是什么?

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gordon Linoff    6 年前

    不,“脏数据”是指您依赖于数据库的内部,因此没有保证。由于事务回滚,数据可以写入数据页,然后删除。数据可以写入数据页——然后同一事务中的后续步骤可以覆盖它。

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

    推荐文章