在AWS RDS上的Postgres 14.3数据库中,我想创建一个索引而不阻塞其他数据库操作,因此我想使用CONCURRENTLY
选项,并且我成功地执行了下面的语句。
CREATE INDEX CONCURRENTLY idx_test
ON public.ap_identifier USING btree (cluster_id);
但在使用以下项检查数据库时:
SELECT * FROM pg_indexes WHERE indexname = 'idx_test';
我只看到:Index without CONCURRENTLY
option
我希望索引是用CONCURRENTLY
选项创建的。
是否有任何数据库开关可以打开这个特性,或者为什么它似乎忽略了CONCURRENTLY
?
1条答案
按热度按时间wj8zmpe11#
如前所述,
CONCURRENTLY
不是索引的属性,而是创建索引而不阻塞并发写入的指令。生成的索引不会以任何方式记住该选项。请阅读手册中的“并发构建索引”一章。在大表上创建索引可能需要一段时间。可以查询系统表
pg_stat_progress_create_index
以获得进度报告。在此期间,CONCURRENTLY
仍然反映在command
列中。安慰你的是:一旦创建,所有索引无论如何都是“并发的”,即它们被自动维护而不阻塞并发的读或写(除了防止重复的
UNIQUE
索引)。