postgresql 连接超时_PostgreSQL执行超时的问题

本文介绍了在使用PostgreSQL时遇到的statement timeout和idle-in-transaction timeout问题,以及如何通过修改配置文件来调整这两个超时时间。陈述了statement_timeout和idle_in_transaction_session_timeout参数的作用,并提供了修改配置文件及重启PostgreSQL服务的步骤。
摘要由CSDN通过智能技术生成

PostgreSQL执行超时的问题

使用背景

最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操作失败。

经研究查找,PostgreSQL有关于SQL语句执行超时和事务执行超时的相关配置,而默认超时时间是10000毫秒,即10秒钟的时间,这样会导致执行时间稍长的任务执行失败。可以通过修改PostgreSQL服务器配置文件的方式修改默认配置。

参数说明

statement_timeout

statement_timeout 在 postgresql 被用来控制语句执行时长,单位是ms。

$vi postgresql.conf

#statement_timeout = 0 # in milliseconds, 0 is disabled

1

2

默认是0,表示语句可以一直执行下去。

如果设置为10000,那就意味着语句最多可以执行 10000ms = 10s。建议设置为0,禁用该参数。

idle_in_transaction_session_timeout

PostgreSQL 9.6版本开始支持自动查杀超过指定时间的 idle in transaction 空闲事务连接,用于清理应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等。

idle_in_transaction_session_timeout 在 postgresql 被用来控制事务执行时长,单位是ms。

$vi postgresql.conf

#idle_in_transaction_s

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值