我正在尝试在包含数百万个条目的表上创建索引。不幸的是,每当我尝试它时,CPU就会上升,我不得不将其杀死大约90%的CPU利用率,否则会损害生产。
然后我该怎么做才能创建索引?这是一个部分索引。我已将maintenance_work_mem
设置为2GB。在数据库运行时,我无法真正更改checkpoint_segments
。 CREATE INDEX CONCURRENTLY
会更快地缩短数据库。
那我还能做什么呢?
答案 0 :(得分:1)
创建索引肯定无法在现代多核系统上达到90%的CPU(主要是因为它仅使用一个核心)。您更有可能阻止针对该表的所有查询。请尝试构建索引CONCURRENTLY
(manual)。