Hasty Briefsbeta

双语

Looking Forward to Postgres 19: Split Personality

7 days ago
  • #Database Management
  • #Postgres
  • #Partitioning
  • Postgres 19 引入了新的 SPLIT PARTITION 和 MERGE PARTITIONS 语法,用于重新组织分区,简化了先前需要多个手动步骤的操作。
  • SPLIT PARTITION 允许通过单个命令将一个分区拆分为更小的分区,自动将行移动到正确的新分区。
  • MERGE PARTITIONS 将相邻的分区合并为一个,减少开销并保持数据完整性,无需手动迁移。
  • 这些操作支持默认分区,可以轻松地将通用默认分区中的数据重新分配到特定分区。
  • SPLIT 和 MERGE 都要求分区相邻且无间隙,Postgres 会在违反规则时提供清晰的错误消息。
  • 在拆分或合并期间,在单个分区上定义的本地索引和约束会丢失,而从父表继承的索引和约束会被重新创建。
  • 这些命令在整个分区表上采取 ACCESS EXCLUSIVE 锁,直到完成前会阻塞读取和写入,目前还没有 CONCURRENTLY 变体。
  • 拆分和合并适用于 RANGE 和 LIST 分区,但不适用于 HASH 分区,这可能对某些用户构成限制。
  • 这些功能解决了长期以来的需求,但由于锁定问题,应在维护窗口中使用,以等待未来改进,如并发操作。