合并 PostgreSQL 中的许多大表

问题描述 投票:0回答:1

我有 150 个表格,其中相同的列代表一个国家/地区的区域。每个表的大小为数百万行,大小为数十GB。

我想将所有表格合并为一个,目的是改进和提高我执行的空间操作的准确性。在 PostgreSQL 中组合这些表在速度和存储方面最有效的方法是什么?

例如我有表1:

fid    column-1   column-n   geom
-----------------------------------------
1      001        ...        geometry-001
2      002        ...        geometry-002

表2:

fid    column-1   column-n   geom
-----------------------------------------
1      003        ...        geometry-003
2      004        ...        geometry-004

预期合并表:

fid    column-1   column-n   geom
-----------------------------------------
1      001        ...        geometry-001
2      002        ...        geometry-002
3      003        ...        geometry-003
4      004        ...        geometry-004

我的想法是将表2,3,4,5,...,150插入表1,然后删除表2,3,4,5,...150

但是这样会花费很长时间并且占用相当多的存储空间,那么有没有更好的方法呢?

sql database postgresql database-design
1个回答
0
投票

但是这样会花费很长时间并且占用相当多的存储空间,那么有没有更好的方法呢?

您可以一路删除迁移的表,而不是仅在最后删除,这样可以最大限度地减少存储需求。

此外,您应该在迁移过程中禁用所有索引并检查目标表中的约束:只要您确定迁移代码是正确的,这确实会使事情变得更快(迁移完成后重新激活索引将重建索引,这比每次插入时的索引要快得多:与检查约束类似)。

© www.soinside.com 2019 - 2024. All rights reserved.