【问题标题】:What is the difference in executing a single select query in read committed versus repeatable read transaction?在已提交读事务与可重复读事务中执行单个选择查询有什么区别?
【发布时间】:2018-01-08 14:57:35
【问题描述】:

这个问题是从Refactor functions so they can be used within a CTE 衍生出来的。

问题很简单:在READ COMMITTEDREPEATABLE READ 事务中执行SELECT 查询有什么不同吗?我们假设事务中没有其他查询(甚至是“SELECT”查询)。所以事务只执行一个SELECT 查询。

【问题讨论】:

  • 对于单个查询,没有没有区别。
  • @a_horse_with_no_name,直到提交未完成repeatable read 可能看起来更多资源。

标签: sql postgresql transactions isolation-level


【解决方案1】:

通常单个SELECT 语句不会有区别。

如果SELECT 语句调用用户定义的函数,这些函数本身发出多个 SQL 语句,则例外。

在这种情况下,REPEATABLE READ 将使所有这些 SQL 语句共享数据库的单个快照,而READ COMMITTED 将使每个 SQL 语句看到数据库的不同状态。

【讨论】:

    猜你喜欢
    • 2019-06-01
    • 2016-07-13
    • 2020-01-19
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多