我有 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
但是这样会花费很长时间并且占用相当多的存储空间,那么有没有更好的方法呢?
但是这样会花费很长时间并且占用相当多的存储空间,那么有没有更好的方法呢?
您可以一路删除迁移的表,而不是仅在最后删除,这样可以最大限度地减少存储需求。
此外,您应该在迁移过程中禁用所有索引并检查目标表中的约束:只要您确定迁移代码是正确的,这确实会使事情变得更快(迁移完成后重新激活索引将重建索引,这比每次插入时的索引要快得多:与检查约束类似)。