Продвинутый
Что такое VACUUM в PostgreSQL и зачем он нужен?
Из-за архитектуры MVCC (многоверсионности), когда вы делаете UPDATE или DELETE, PostgreSQL не удаляет старую строку физически. Он помечает ее как "мертвую" (dead tuple), а рядом пишет новую версию.
Со временем таблица раздувается от мусора (Bloat), и запросы начинают тормозить.
VACUUM (Вакуум) — это фоновый процесс сборки мусора. Он сканирует таблицы, находит "мертвые" строки, которые больше не нужны ни одной активной транзакции, и помечает их место на диске как свободное для записи новых данных.
💡 Практика: В современных версиях работает autovacuum, но при массовых удалениях аналитик/DBA может запустить VACUUM FULL вручную.