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 分区,这可能对某些用户构成限制。
- 这些功能解决了长期以来的需求,但由于锁定问题,应在维护窗口中使用,以等待未来改进,如并发操作。