按日期对Postgres数据进行分区,'早于x天'

3
我想分区我的一个包含大量旧数据的大表。
我认为可以通过日期列对表进行分区。
我希望只有最近30天的记录保留在一个分区中,其余记录保存在“归档”分区中。
是否有实现这一点的方法?
谢谢, Detlef

PostgreSQL手册对如何使用分区非常清晰,但具体的操作方式取决于你所使用的PostgreSQL版本。更现代的版本支持原生的分区功能,而较旧的版本需要通过创建更多的表格,并结合使用INHERITS、CHECK和表触发器以及一个用于方便插入的函数来模拟实现分区。 - undefined
1个回答

4
创建“最近30天”和“存档”(30天前的记录)分区,并使记录随着时间自动迁移,即使在最新版本的Postgres中也不是本地支持的功能。你可以在技术上做到这一点,但你需要编写脚本来在分区之间迁移数据并更新分区定义,这很快就会变得笨重和复杂,并且可能导致表在每晚更新分区时被锁定。
更容易的方法是创建一个包含所有30天前数据的分区,然后为每个月创建分区。这是文档中描述的情况:https://www.postgresql.org/docs/current/ddl-partitioning.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接