是否有可能在 Postgresql 中进行在线索引重建

是否有可能在 Postgresql 中进行在线索引重建

是否可以在 Postgresql 中进行在线索引重建,或者您唯一的选择是删除并重新创建?谢谢。

答案1

重建my_idx

CREATE INDEX CONCURRENTLY new_my_idx ON my_table (my_column);
BEGIN;
DROP INDEX my_idx;
ALTER new_my_idx RENAME TO my_idx;
COMMIT;

带有常见的警告CONCURRENTLY(它将花费更长时间,因为它必须等待任何待处理的写入完成两次)。

相关内容