tg-me.com/database_info/1437
Last Update:
VACUUM FULL — когда, зачем и с какими рисками
Сейчас поговорим про одну из самых «страшных» команд в арсенале DBA — VACUUM FULL
. Она часто спасает, когда база разрослась до неприличных размеров… но может и «уронить» прод, если запустить не вовремя.
Что делает VACUUM FULL?
Он освобождает табличное пространство, физически удаляя "мертвые" строки и переписывая всю таблицу заново. Это не просто очистка, а именно перезапись. Поэтому:
- Таблица полностью блокируется на запись и чтение.
- Используется временное дисковое пространство (вплоть до размера таблицы).
- Может существенно сократить размер базы — особенно, если давно не было очистки.
Когда применять:
- После массового удаления данных.
- Когда обычный VACUUM
не помогает уменьшить размер базы.
- При миграции/переезде базы, чтобы максимально уменьшить backup.
Чего опасаться:
- На больших таблицах — это может занять часы.
- Блокировки = пользователи «висят».
- Нужно много свободного места на диске.
Альтернатива: если задача — просто освободить место и база под нагрузкой, рассмотрите pg_repack
. Он позволяет делать реорганизацию без блокировок (но требует отдельной установки).
Лично я использую VACUUM FULL
только в окне обслуживания или на read replica.
А вы? Когда последний раз делали VACUUM FULL
?
#db
👉 @database_info
BY Базы данных (Data Base)

Share with your friend now:
tg-me.com/database_info/1437