Perl:以编程方式删除PostgreSQL表索引,然后使用DBD :: Pg在COPY之后重新创建

时间:2012-04-11 22:01:54

标签: perl postgresql dbi dbd-pg

我正在将几个表(~1.5M记录)从一个数据源复制到另一个数据源,但这需要很长时间。我希望加快使用DBD :: Pg。

我目前正在使用pg_getcopydata / pg_putcopydata,但我认为目标表上的索引会减慢进程。

我发现我可以使用$dbh->statistics_info找到有关表索引的一些信息,但我很好奇是否有人有一种编程方式可以根据这些信息动态删除/重新创建索引。

1 个答案:

答案 0 :(得分:1)

我想,编程方式是通过您将输入CREATE INDEX的DBI提交相应的psql SQL语句。

有时复制大表时,最好按此顺序执行:

  • 创建没有索引的表
  • 复制数据
  • 添加索引