PostgreSQL 19: REPACK CONCURRENTLY сокращает блокировку таблицы с 5 секунд до менее секунды
В PostgreSQL 19 появилась команда REPACK с опцией CONCURRENTLY, заменяющая VACUUM FULL и расширение pg_repack. В тестах на таблице в 2 млн строк блокировка клиента упала с 4,3–5,3 секунды до 0,35–0,93 секунды, но запись WAL выросла на 4–25%.
- REPACK CONCURRENTLY берёт эксклюзивную блокировку только на финальную замену файла
- При 10 клиентах суммарное время блокировки упало с 54,4 до 2,73 секунды
- Запись WAL выросла с 655–783 МБ до 816 МБ на том же объёме данных
- Число параллельных REPACK ограничено параметром max_repack_replication_slots, по умолчанию 5
Читать дальше
Софт