我想要分区我的巨大表格来解决性能问题,但我想要分区的属性驻留在另一个与自由港。
这是我的表格:
Article (Table1)
id
submit_date
...
Concept (Table2)
id
article_id (FK)
...
所以,我想分区概念表格依据提交日期属性来自文章表(例如按月拆分)。是否可以使用PostgreSQL?
答案1
当然可以。您可以根据所需的任何字段或复杂查询进行分区 -INSERT
由触发器处理,SELECT
由表继承处理。
在你的情况下触发概念表需要对提交日期以确定要插入到哪个分区。如果您已经在概念表你需要做一些工作来对现有数据进行分区:
- 进行备份
如果您不进行备份而继续操作并丢失数据,您将被嘲笑。 - 为每个分区创建子表。
- 使您的数据库处于静止状态(断开所有客户端或至少锁定主表)。
INSERT
将数据放入每个分区
(INSERT INTO Concept_0001 SELECT * FROM Concept WHERE …
)DROP
原始表并重新创建它以从分区继承。
你读了...吗有关分区表的 Postgres 文档和表继承? 这样做几乎是尝试在 Postgres 中进行任何类型的表分区的先决条件……