我在将过滤后的数据从一个表复制到另一个表(具有类似结构)时遇到问题。基本上,我有一个包含大约 110 亿行的大表,我想将基于其中一列(称为“指纹”)唯一的记录复制到另一个表中。我试过这样的事情:
INSERT INTO table2 SELECT DISTINCT ON (fingerprint) * FROM table1;
它通常有效,但速度很慢;我在一个包含 800 000 行的较小的表上对其进行了测试,花了将近一个小时。我尝试将 INSERT 更改为一对 COPY (带二进制选项)语句,但不知何故更糟......
我在 Linux LMDE 上运行 psql 服务器,i5-2410m 具有 6gigs 的 RAM。我不知道它是否需要这么长时间以及是否有办法改进它。我会很感激任何提示。