PostgreSQL 19 получил команду REPACK с режимом CONCURRENTLY
В PostgreSQL 19 появилась нативная команда REPACK, объединяющая VACUUM FULL и CLUSTER. Опция CONCURRENTLY позволяет переписывать раздутые таблицы без длительной блокировки ACCESS EXCLUSIVE, а новая вьюха pg_stat_progress_repack показывает ход операции.
- REPACK объединяет VACUUM FULL и CLUSTER, опции: VERBOSE, ANALYZE, CONCURRENTLY
- CONCURRENTLY захватывает изменения через логическое декодирование и берёт блокировку лишь на финальную подмену файлов
- В тесте таблица на 1 млн строк сжалась с 1582 МБ до 459 МБ за ~27 секунд
- Ограничения: UNLOGGED, партиционированные таблицы, отсутствие первичного ключа, запуск внутри транзакции
Читать дальше
Софт