我需要维护审计表,由于更改的数量将会很大,所以我需要一种有效的处理方法。我想到的解决方案是仅在审计表中记录更改的列,并根据 createdon
列每季度或半年对其进行分区。
我想知道是否有类似于 Oracle 的 'interval partition' 的东西?如果没有,我该如何实现它?
我希望每6个月自动创建一个新分区,随着行的插入而完成。
我正在使用 Postgres 11 作为我的数据库。
我需要维护审计表,由于更改的数量将会很大,所以我需要一种有效的处理方法。我想到的解决方案是仅在审计表中记录更改的列,并根据 createdon
列每季度或半年对其进行分区。
我想知道是否有类似于 Oracle 的 'interval partition' 的东西?如果没有,我该如何实现它?
我希望每6个月自动创建一个新分区,随着行的插入而完成。
我正在使用 Postgres 11 作为我的数据库。
我不认为有任何魔法配置可以让您在这一点上更轻松:
https://www.postgresql.org/docs/11/ddl-partitioning.html如果您想要自动创建表格,我认为您有两个主要选择:
例如,几年前,当只有声明性分区而没有添加pg_partman的可能性时,我曾经制作了一个分区机制。对于每月1500万行的触发器机制仍然像魅力一样运作。
如果您永远不想损害性能(特别是如果您不知道系统会增长多大),我建议您使用与a_horse_with_no_name评论中相同的响应:使用pg_partman。
如果您无法使用它,就像我一样,采用两种哲学之一(触发器或通过定时任务提前创建表格)。