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