VACUUM / AUTOVACUUM
Очищает «мёртвые» версии строк после UPDATE и DELETE. Необходим для корректной работы PostgreSQL.
VACUUM table_name; VACUUM ANALYZE table_name; VACUUM FULL table_name; -- осторожно! блокирует таблицу
Объяснение
Пример
-- Проверить таблицы с большим количеством мёртвых строк SELECT relname, n_dead_tup, n_live_tup, last_autovacuum FROM pg_stat_user_tables ORDER BY n_dead_tup DESC;
Связанные термины
Анекдоты по теме
— Что такое two-phase commit? — Протокол для распределённых транзакций через несколько баз. — Фазы? — 1: все участники готовятся и говорят «готов». — 2: если все готовы — все фиксируют. Иначе — все откатывают. — Надёжно? — Да, но медленно. Один slow participant тормозит всех.
— Что такое CAP теорема? — Consistency, Availability, Partition tolerance — выбери два из трёх. — Это значит распределённые базы ненадёжны? — Нет. Partition tolerance обязательна. Реальный выбор: CP (PostgreSQL, MongoDB) или AP (Cassandra, CouchDB). — А PACELC? — Более реалистичная модель. Но это уже другая история.
— Что такое eventual consistency? — Данные станут согласованными «в конечном счёте». — Когда это приемлемо? — Лайки в соцсетях, счётчики просмотров — небольшая задержка не критична. — Когда неприемлемо? — Банковские переводы, инвентарь товаров. Там нужен ACID. — Один размер не подходит всем. — В этом вся суть NoSQL vs SQL дискуссии.