【问题标题】:What are the possible cases which cause transactions run in parallel within one PostgreSQL session?哪些情况会导致事务在一个 PostgreSQL 会话中并行运行?
【发布时间】:2019-06-10 21:18:38
【问题描述】:

我曾考虑使用 PostgreSQL 咨询锁来防止某些事务并行运行时可能发生的某些竞争条件,但 PostgreSQL 文档说锁只阻止其他会话的事务,而不是一个会话中的事务:

如果会话已经持有给定的咨询锁,其他请求 由它将永远成功,无论是否,这句话都是正确的 现有的锁定保持和新请求处于会话级别或 交易级别

但事务何时在一个会话中并行运行?我可以在没有重大性能下降等情况下以某种方式避免这种情况吗?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    但事务何时在一个会话中并行运行?

    从不。

    从 9.6 版开始有intra-query parallelism,这意味着可以并行使用操作系统级别的多个 CPU 和进程来执行查询,但事务永远不会并行执行多个查询,会话也永远不会产生多个事务以并行执行.

    【讨论】:

    • 我认为值得注意的是,这并不是 Postgres 特有的,没有任何关系 DBMS 支持单个连接上的多个活动事务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2020-09-30
    • 2023-03-16
    • 2010-11-14
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多