在文档的填充数据库部分中有关于此主题的提示列表。您也可以使用Tuning Your PostgreSQL Server中的提示来提高总体性能。
检查外键的开销可能会随着表大小的增加而增加,这会变得更糟,因为您一次加载一条记录。如果您要加载 70GB 的数据,在加载期间删除外键,然后在导入时重建它们会快得多。如果您使用单个 INSERT 语句,则尤其如此。切换到 COPY 也不能保证改进,因为挂起的触发器队列是如何管理的——第一个文档链接中讨论了那里的问题。
从 psql 提示符中,您可以找到强制执行外键的约束的名称,然后使用该名称删除它,如下所示:
\d tablename
ALTER TABLE tablename DROP CONSTRAINT constraint_name;
完成加载后,您可以使用以下方式将其放回:
ALTER TABLE tablename ADD CONSTRAINT constraint_name FOREIGN KEY (other_table) REFERENCES other_table (join_column);
找出用于还原的确切语法的一个有用技巧是在您的数据库上执行pg_dump --schema-only 。其中的转储将向您展示如何重新创建您现在拥有的结构。