You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pg_partman创建分区是否锁表?现状及锁表时长咨询

pg_partman分区创建时的锁表问题及时长说明

锁表情况是否仍属实?

是的,pg_partman在创建新分区时仍会对父表加锁,但影响程度已随PostgreSQL版本和pg_partman的更新有所优化:

  • 在PostgreSQL 11及以上版本中,pg_partman仅在挂载新分区的瞬间持有ACCESS EXCLUSIVE锁,而非整个分区创建过程都持有该锁,阻塞窗口已大幅缩小。
  • 尽管锁的持有时间很短,但在此期间仍会阻塞父表的写入操作(INSERT/UPDATE/DELETE)。

pg_partman创建新分区时的锁表时长?

锁表时长通常处于毫秒级别,具体受以下因素影响:

  • 父表复杂度:若父表包含大量索引、约束或触发器,锁持有时间可能略有增加,但一般不会超过1秒。
  • PostgreSQL版本:新版本PostgreSQL对分区管理的锁机制做了优化,能进一步缩短锁的持有时间。
  • 系统负载:当数据库处于高CPU或高I/O负载时,锁的持有时间可能会有轻微延长。

需要注意的是,在高并发写入场景下,即使毫秒级的锁也可能导致少量短暂的写入阻塞;而Timescale的Hypertable在分区创建时采用更轻量化的锁机制,基本不会阻塞写入操作。

内容的提问来源于stack exchange,提问作者dev Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:28:22