Нужно ли переиндексировать после полного вакуума на Postgres 9.4

Я использую Postgres 9.4.

Я только что запустил вакуум. Я читал о различиях между вакуумом и полным вакуумом и много думал, если я должен запустить вакуум или полный вакуум. Насколько я могу сказать, мне требовался полный вакуум, и мой размер БД снизился с 48 ГБ до 24 ГБ.

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

Я побежал "вакуум полный подробный анализ", поэтому анализ делается вместе с вакуумом полный.

Я читал в нескольких местах, что для Postgres > 9.0 мне не нужно переиндексировать после полного вакуума, но я хочу быть уверен, что это так.

1 ответов


A REINDEX сразу после VACUUM FULL is бесполезно, потому что VACUUM FULL сам перестраивает индексы.

это упоминается в документации 9.4 в Восстановление Дискового Пространства :

...чтобы вернуть лишнее дисковое пространство, которое она занимает, вам нужно будет использовать Вакуум полный, или альтернативно кластер или один из таблицы-переписывать варианты ALTER TABLE. Эти команды переписывают новую копию стол и построить новые индексы для него.

вы правы, что это не было до версии 9.0, которая имела VACUUM FULL reimplemented по-разному.

до версии 8.4, ссылка doc для пылесос упоминалось о необходимости переиндексации:

полная опция не сжимает индексы; периодическое ПЕРЕИНДЕКС по-прежнему рекомендуемый. На самом деле, часто быстрее отбросить все индексы, вакуум Полный, и воссоздать индексы.

но это предостережение теперь устарело.