Sobes.tech
Back to questions
Junior — Middle
54

В чем отличия между командами VACUUM и VACUUM FULL в PostgreSQL?

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

Команда VACUUM в PostgreSQL используется для очистки «мертвых» строк, которые остаются после обновлений и удалений, чтобы предотвратить разрастание таблиц и улучшить производительность. Она выполняется быстро и не блокирует таблицу для чтения и записи.

VACUUM FULL — более «тяжёлая» операция, которая не только удаляет мёртвые строки, но и сжимает таблицу, освобождая неиспользуемое пространство на диске. При этом VACUUM FULL блокирует таблицу на запись и чтение, так как выполняет полное переупорядочивание данных.

Итог:

  • VACUUM: быстро, не блокирует, освобождает место для повторного использования внутри таблицы.
  • VACUUM FULL: медленнее, блокирует таблицу, реально уменьшает размер файла на диске.

Обычно VACUUM FULL применяют, когда нужно вернуть дисковое пространство ОС, например, после массового удаления данных.