【发布时间】:2018-12-23 14:24:36
【问题描述】:
我有一个大表 (postgre_a),它有 100 列的 1 亿条记录。我想将此数据复制到同一张表中。
我尝试使用 sql 来做到这一点
INSERT INTO postgre_a select i1 + 100000000, i2, ... FROM postgre_a;
但是,这个查询现在已经运行了 10 多个小时......所以我想更快地执行此操作。我尝试使用copy 执行此操作,但我找不到将copy from 语句与查询一起使用的方法。
有没有其他方法可以更快地做到这一点?
【问题讨论】:
-
在操作前你是否删除了所有的索引和约束?
-
@LaurenzAlbe 是的。只有主键约束。我也必须删除主键吗?
-
如果你想要好的性能,是的。
-
@LaurenzAlbe 谢谢。顺便说一句,您知道任何其他方法/查询,例如使用
COPY来更快地做到这一点吗?
标签: postgresql select insert copy