Postgres:将非分区 table 转换为分区,但有一点停机时间
Postgres: Convert non-partitioned table to partitioned with a bit downtime
我有一个未分区的 table record
,它是仅附加的,我打算使用 postgres 本机分区按 created
时间戳列的范围对其进行分区。 (每月一个分区)
我可以忍受一点停机时间,所以我的计划是:
创建新的 table record_partitioned
分区;将过去一个月的所有数据复制到新分区 table
停止写入 table,将当前月份的数据复制到新的分区 table(有点停机)
将旧 table 重命名为 record_archived
,将新 table 重命名为 record
恢复写入table
这有意义吗?
这应该可行,但您也可以考虑以下几点:
创建一个新分区table
为当前月份添加一个分区
附加现有的大 table 作为所有过去数据的分区
现有 table 中的所有数据都过期后,将其删除
我有一个未分区的 table record
,它是仅附加的,我打算使用 postgres 本机分区按 created
时间戳列的范围对其进行分区。 (每月一个分区)
我可以忍受一点停机时间,所以我的计划是:
创建新的 table
record_partitioned
分区;将过去一个月的所有数据复制到新分区 table停止写入 table,将当前月份的数据复制到新的分区 table(有点停机)
将旧 table 重命名为
record_archived
,将新 table 重命名为record
恢复写入table
这有意义吗?
这应该可行,但您也可以考虑以下几点:
创建一个新分区table
为当前月份添加一个分区
附加现有的大 table 作为所有过去数据的分区
现有 table 中的所有数据都过期后,将其删除