pg_repack
Расширение PostgreSQL, перестраивающее раздутые таблицы и индексы без их блокировки. Альтернатива VACUUM FULL, который блокирует таблицу до завершения.
Обычный vacuum позволяет повторно использовать мёртвое место, но никогда не возвращает его операционной системе, поэтому таблица, раздувшаяся при массовом обновлении, остаётся большой. VACUUM FULL и CLUSTER исправляют это полной перезаписью, но берут эксклюзивную блокировку, делающую таблицу недоступной, — а на боевой базе это означает, что этого просто никогда не делают. pg_repack вместо этого строит копию в фоне, перехватывает параллельные изменения триггером и лог-таблицей, применяет их и подменяет файлы с короткой блокировкой в самом конце. Цена — нужно место на диске под вторую копию таблицы на время работы.