lock_timeout 是一个 配置参数,它确定在尝试获取锁被放弃之前应该经过的时间段。
lock_timeout 在 PostgreSQL 9.3 中被添加。
默认值
lock_timeout 的默认值是:0 (禁用)。
用法
建议在会话级别设置 lock_timeout,而不是通过 postgresql.conf 全局设置。
按 PostgreSQL 版本详细信息
lock_timeout (PostgreSQL 19)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 0 表示禁用超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 18)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 0 表示禁用超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 17)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 16)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 15)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 14)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 13)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 12)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 11)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 10)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 9.6)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 9.5)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:lock_timeout
lock_timeout (PostgreSQL 9.4)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 |
文档:lock_timeout
lock_timeout (PostgreSQL 9.3)
| 设置 | 0 |
| 单位 | 毫秒 |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置任何锁等待允许的最大持续时间。 |
| 扩展描述 | 值为 0 将关闭超时。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 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
