lock_timeout
是一个 配置参数,用于确定在放弃获取锁的尝试之前应该经过的时间段。
lock_timeout
在 PostgreSQL 9.3 中添加。
默认值
lock_timeout
的默认值为:0
(已禁用)。
用法
建议在会话级别设置 lock_timeout
,而不是通过 postgresql.conf
全局设置。
按 PostgreSQL 版本分列的详细信息
lock_timeout (PostgreSQL 17)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 16)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 15)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 14)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 13)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 12)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 11)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 10)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 9.6)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 9.5)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 | |
挂起重启 | 否 |
文档:lock_timeout
lock_timeout (PostgreSQL 9.4)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 |
文档:lock_timeout
lock_timeout (PostgreSQL 9.3)
设置 | 0 |
单位 | 毫秒 |
类别 | 客户端连接默认值 / 语句行为 |
简短描述 | 设置任何等待锁的最大允许持续时间。 |
额外描述 | 值为 0 将关闭超时。 |
上下文 | 用户 |
变量类型 | 整数 |
来源 | 默认 |
最小值 | 0 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 0 |
重置值 | 0 |
源文件 | |
源代码行 |
文档:lock_timeout
变更历史
- PostgreSQL 9.3
- 添加 (提交 d43837d0)
示例
lock_timeout
的基本用法示例
-- session 1: postgres=# BEGIN; BEGIN postgres=*# LOCK TABLE foo IN ACCESS EXCLUSIVE MODE; LOCK TABLE -- session 2: postgres=# SET lock_timeout = '10s'; SET postgres=# BEGIN; BEGIN postgres=# \timing Timing is on. postgres=*# LOCK TABLE foo; ERROR: canceling statement due to lock timeout Time: 10001.524 ms (00:10.002)
参考文献
- PostgreSQL 文档: lock_timeout