在分区 table 上同时创建索引

create index concurrently on partitioned table

我正在使用 postgresql 14.1,我使用 parititons 为一些表重新创建了我的实时数据库。

自从我这样做后,我可以在服务器未运行时创建索引,但当它运行时我只能创建使用 concurrently 但不幸的是,当我尝试同时创建索引时,我得到了一个错误。

运行 这个:

create index concurrently foo  on foo_table(col1,col2,col3));

提供错误:

ERROR:  cannot create index on partitioned table "foo_table" concurrently

现在它是一个实时服务器,我不能同时创建索引,我需要创建一些索引以提高性能。有什么想法吗?

谢谢

没问题。首先,使用 CREATE INDEX CONCURRENTLY 在每个分区上创建索引。然后使用 CREATE INDEX 在分区 table 上创建索引。这样会很快,分区上的索引会变成索引的分区。