Postgres准备交易与准备好的报表

Dev*_*xon 3 postgresql

我正在调整Postgres数据库,我准备用max_prepared_transactions设置准备好的事务的最大数量.

该应用程序使用了许多准备好的语句,但没有准备好PREPARE名称AS xyz中的事务.

我的问题是:

  1. 准备好的报表和准备好的交易之间有区别吗?
  2. max_prepared_transactions会影响预准备语句吗?

har*_*mic 6

  1. 是.PREPARE TRANSACTION用于启动两阶段事务,通常在您希望同时以原子方式提交给两个数据库时使用.

    准备好的语句涉及请求服务器提前计划SQL语句,通常这样您可以多次执行语句而无需每次计划它的开销.请参阅PREPARE.

    这两者是无关的.

  2. 不,max_prepared_transactions不影响准备好的陈述.

  • 同意,我**强烈**建议将 `max_prepared_transactions` 保留为零,除非您使用准备好的交易。一个“被遗忘的”准备好的 xact 可能会在数据库中造成真正的混乱。 (2认同)