PostgreSQL:SELECT INTO - 如何创建索引?

时间:2009-08-26 08:56:57

标签: postgresql

由于SELECT INTO NEW_TABLE FROM QUERY创建NEW_TABLE,新表将没有任何索引。有没有办法利用SELECT INTO和现有的表格来创建所需的索引?我知道INSERT INTO TABLE SELECT ...但是与SELECT INTO相比,我遇到了非常糟糕的性能。

由于

1 个答案:

答案 0 :(得分:0)

不确定您会谈到哪些性能问题,但通常情况下,如果您正在复制表格,那么在插入数据后创建索引会更好

即。 - 你这样做:

create table new_table as select * from old_table;

然后只创建索引。

简化索引创建的一个选项是使用pg_dump和它的-s和-t选项,以及一些“grep”:

pg_dump -s -t old_table database_name | \
    grep -E '^CREATE.*INDEX' | \
    sed 's/old_table/new_table/g'