Разница между командами VACUUM FULL и REINDEX в PostgreSQL заключается в их назначении:
- VACUUM FULL полностью блокирует таблицу, создаёт новый файл таблицы, копирует в него только живые записи, после чего удаляет старый файл таблицы. 2 Освобождённое пространство возвращается операционной системе. 2 Эту команду не следует запускать чаще раза в неделю, её также имеет смысл запускать вручную для конкретной таблицы после удаления или обновления большой части записей в ней. 1
- REINDEX используется для перестройки существующих индексов. 1 Её применяют в случае порчи индекса или постоянного увеличения его размера. 1 Например, если индекс содержит много пустых или почти пустых страниц, которые замедляют обработку запросов. 4
Таким образом, VACUUM FULL фокусируется на обработке таблицы, а REINDEX — на перестройке индексов. 24