在COPY
上阅读了PostgreSQL参考文档后,我没有发现COPY
如何处理索引。当表已有索引时,将数据从文件复制到表中时,究竟会发生什么情况。我想知道这些索引是否会先自动销毁,然后在加载后重新创建?
手册中还有一页名为"填充数据库",用于处理该问题。它的建议:
如果要加载新创建的表,最快的方法是 创建表,使用
COPY
大容量加载表的数据,然后创建 表所需的任何索引。在预先存在的索引上创建索引 数据比在加载每一行时以增量方式更新数据更快。
都清楚了,对吧?但是阅读页面,可能还有更多适合您。
COPY 目前对索引没有任何特殊作用。
如果必须插入到索引表中,则 COPY 和批处理插入之间的性能差异不大。
因此,如果您无法删除索引,那么只需使用给定当前数据格式的最方便的命令即可。