现有索引对 COPY FROM 性能的影响



COPY上阅读了PostgreSQL参考文档后,我没有发现COPY如何处理索引。当表已有索引时,将数据从文件复制到表中时,究竟会发生什么情况。我想知道这些索引是否会先自动销毁,然后在加载后重新创建?

手册中还有一页名为"填充数据库",用于处理该问题。它的建议:

如果要加载新创建的表,最快的方法是 创建表,使用 COPY 大容量加载表的数据,然后创建 表所需的任何索引。在预先存在的索引上创建索引 数据比在加载每一行时以增量方式更新数据更快。

都清楚了,对吧?但是阅读页面,可能还有更多适合您。

COPY 目前对索引没有任何特殊作用。

如果必须插入到索引表中,则 COPY 和批处理插入之间的性能差异不大。

因此,如果您无法删除索引,那么只需使用给定当前数据格式的最方便的命令即可。

最新更新