TGViewer
Базы данных (Data Base) Базы данных (Data Base) @database_info · 8.05K subscribers
Post #1402 1.7K
🧹 VACUUM FULL — спасение от bloated-таблиц или тихий враг?

Сегодня хочу поговорить о том, что многие DBA используют как "универсальную таблетку" — VACUUM FULL. Но стоит ли?

💡 Что делает VACUUM FULL:
Он полностью перебирает таблицу и создаёт её заново, убирая все мёртвые строки. Результат — таблица становится компактной, как после дефрагментации. Это помогает, если у тебя:

- Много UPDATE или DELETE
- Таблица разрослась до абсурдных размеров
- Autovacuum не справляется

🔎 Как понять, что таблица bloated:


SELECT
schemaname, relname,
pg_size_pretty(pg_total_relation_size(relid)) AS total_size,
pg_size_pretty(pg_relation_size(relid)) AS table_size,
(pg_total_relation_size(relid) - pg_relation_size(relid)) AS index_overhead
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC;


Если table_size сильно больше, чем объём живых данных — у тебя блоат.

⚠️ Осторожно: VACUUM FULL = эксклюзивная блокировка!

Пока он работает:
- Все запросы к таблице ждут
- Могут “залипать” аппы
- В проде без окон — 💥

🛠 Что делать вместо:
- Пробовать pg_repack — он делает примерно то же, но без блокировок
- Делать регулярный autovacuum + мониторинг
- Разбивать массивные UPDATE/DELETE на батчи

VACUUM FULL — это инструмент, который стоит использовать осознанно. Как хирургический скальпель — мощный, но не для каждодневного применения. А ты когда последний раз делал VACUUM FULL в проде? 😏

#db

👉 @database_info
  • 👍 7
More from @database_info
  1. Sep 28, 2026SQL Important Queries Сохрани на потом, тебе пригодится👌 📲 Мы в MAX #db 👉 @database_inf…
  2. Sep 24, 2026Сегодня я хочу рассказать вам про одну часто недооцененную фишку в PostgreSQL - partial in…
  3. Sep 23, 2026🚀 Сегодня я покажу вам один из моих любимых хаков для PostgreSQL – генерация серий дат бе…
  4. Sep 22, 2026⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк…
  5. Sep 21, 2026Как быстро найти “тяжёлые” запросы в PostgreSQL Сегодня покажу простой способ найти самые…
  6. Sep 20, 2026🚀 Сегодня покажу, как быстро диагностировать «тормоза» в PostgreSQL - без всяких внешних…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →