Я пытаюсь создать индекс на столе с несколькими миллионами записей. К сожалению, всякий раз, когда я пытаюсь это сделать, процессор поднимается, и я должен убить его примерно на 90% загрузки процессора, потому что в противном случае это может повредить производство.Создание частичного индекса занимает CPU
Что я могу сделать для создания индекса? Это частичный индекс. Я уже установил maintenance_work_mem
на 2 ГБ. Я не могу изменить checkpoint_segments
во время работы базы данных. CREATE INDEX CONCURRENTLY
будет быстрее загружать базу данных.
Итак, что еще я мог сделать?
Вы можете настроить процесс базы данных на более низкий приоритет процесса. Вы получите ту же загрузку процессора, но она будет вести себя намного лучше с точки зрения совместного использования. Для этого вам может потребоваться запустить PostgreSQL вручную из командной строки и использовать 'nice' с подходящим приоритетом во время сборки. – 0xCAFEBABE
Что именно использует этот 90% процессор? –