根据FK属性对PostgreSQL表进行分区

根据FK属性对PostgreSQL表进行分区

我想要分区我的巨大表格来解决性能问题,但我想要分区的属性驻留在另一个与自由港

这是我的表格:

Article (Table1)
 id
 submit_date
 ...

Concept (Table2)
 id
 article_id (FK)
 ...

所以,我想分区概念表格依据提交日期属性来自文章表(例如按月拆分)。是否可以使用PostgreSQL

答案1

当然可以。您可以根据所需的任何字段或复杂查询进行分区 -INSERT由触发器处理,SELECT由表继承处理。

在你的情况下触发概念表需要对提交日期以确定要插入到哪个分区。如果您已经在概念表你需要做一些工作来对现有数据进行分区:

  1. 进行备份
    如果您不进行备份而继续操作并丢失数据,您将被嘲笑。
  2. 为每个分区创建子表。
  3. 使您的数据库处于静止状态(断开所有客户端或至少锁定主表)。
  4. INSERT将数据放入每个分区
    INSERT INTO Concept_0001 SELECT * FROM Concept WHERE …
  5. DROP原始表并重新创建它以从分区继承。

你读了...吗有关分区表的 Postgres 文档表继承? 这样做几乎是尝试在 Postgres 中进行任何类型的表分区的先决条件……

相关内容