Переиндексирование в PostgreSql - PullRequest
2 голосов
/ 27 мая 2020

Как я могу определить, какие все индексы нужно переиндексировать в базе данных Postgres? И мне нужно запланировать задание по переиндексации индексов в Postgres, как часто мне следует его запускать?

А сбор статистики индексов может быть обеспечен автоанализом части автоочистки или мы должны запускать его отдельно?

1 Ответ

1 голос
/ 27 мая 2020

Обычно вам не нужно переиндексировать индекс PostgreSQL. Со временем они станут несколько фрагментированными, но это нормально.

Тем не менее, вы можете использовать функцию pgstatindex из расширения pgstattuple для проверки индекса:

CREATE EXTENSION pgstattuple;

SELECT avg_leaf_density FROM pgstatindex('items_1_pkey');

 avg_leaf_density 
------------------
            88.92
(1 row)

Этот индекс идеально плотный, плотность примерно такая же, как у fillfactor (90). Рассмотрите возможность переиндексации, если значение упадет ниже 20 или около того.

...