现有指标对COPY性能的影响

时间:2014-04-03 23:25:15

标签: postgresql indexing sqlbulkcopy

阅读PostgreSQL reference doc on COPY后,我没有找到COPY如何处理索引。当表已经有索引时,将文件中的数据复制到表中时会发生什么。我想知道这些索引是否会首先自动销毁,然后在加载后重新创建?

2 个答案:

答案 0 :(得分:3)

手册中有另一个名为Populating a Database的页面,用于处理该问题。它的建议是:

  

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

一切都清楚吧?但是阅读页面,可能还有更多适合你的。

答案 1 :(得分:2)

COPY目前对索引没有什么特别之处。

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

因此,如果您不能删除索引,那么只要使用当前格式的数据,最方便的命令就是最方便。