@beduin01

На сколько быстро происходит пересчет hash индекса?

Решил поменять тип индекса с b-tree на hash на таблице в 20 млн записей. PostgreSQL загрузил проц, а SQL менеджер завис. Подождав 40 минут я рестартовал службу PostgreSQL т.к. не понял зависла она или работает (1 ядро Xeon было загружено полностью)

Операция хэширования получается такая медленная?
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
hash индекс строится в один поток, для них многопоточный create index не делали. Потому загрузка 100% одного ядра - ситуация нормальная.
Нет, create index не зависает.
Если у вас селективность поля хреновая - то hash индекс будет строиться медленно, т.к. много строк попадает в одно и то же значение хеширования. Не помню точно, как именно хранится список TID при коллизиях хеш-функции, но точно работает хреново при большом числе дублей значений.

Если версия postgresql достаточно свежая - то смотрите pg_stat_progress_create_index системное представление. Там будут некоторый progress reporting.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы