PostgreSQL 11中具有自动分区创建功能的表分区?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL 11中具有自动分区创建功能的表分区?相关的知识,希望对你有一定的参考价值。

我需要维护审计表,并且由于更改的数量将是巨大的,所以我需要一种有效的方法来解决该问题。我想到的解决方案是仅在审核表中记录更改的列,并每季度或半年在createdon列上进行分区。

我想知道是否有甲骨文的“间隔分区”之类的东西?如果没有,我该如何实现?我希望每6个月在插入行时自动创建一个新分区。

我正在使用postgres 11作为我的数据库。

答案

我认为在这一点上,没有任何魔术配置可以使您的生活更轻松:https://www.postgresql.org/docs/11/ddl-partitioning.html

如果您要自动创建表,我认为您有两种主要的可能性:

  • 验证“母亲”表中的每个数据,以查看其是否适合已存在的分区(触发,如果插入大量,可能是一个问题)
  • 偶尔检查一下您是否已经拥有将来需要的分区。为此,pg_partman将是您最好的盟友。

例如,几年前,当只有声明性的机制,而没有添加pg_partman的可能性时,我做了一个分区机制。凭借每月1500万行的触发机制,它仍然可以发挥作用。

[如果您不想损害性能,尤其是如果您不知道您的系统将要增长多大,我建议您使用与a_horse_with_no_name注释相同的响应:使用pg_partman。

[如果您无法像我那样使用它,则采用两种方法之一(例如,通过crontask触发或提前创建表)。

以上是关于PostgreSQL 11中具有自动分区创建功能的表分区?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL:自动删除旧分区

PostgreSQL PARTITION 分区表

Postgres - 内置的自动和动态分区

Oracle 11g 新特性:自动创建分区(Interval Partition)

oracle 11g 分区表创建(自动按年分区)

具有特定权限的 Postgresql 用户