Каждую осень выходит очередная мажорная версия СУБД PostgreSQL. Что нам готовит 19я версия — рассказываем с нашим экспертом по СУБД и автором курса по архитектуре и тюнингу SQL в PostgreSQL (стартует 3-го сентября), Николаем Ихалайненом.
Параллельный автовакуум
В PostgreSQL 19 автоматическая очистка таблиц может выполняться параллельно. Ранее autovacuum обрабатывался одним потоком, что могло замедлять удаление устаревших версий строк даже при наличии свободных вычислительных ядер. Параллельная обработка позволяет эффективнее использовать ресурсы процессора и сокращать время обслуживания больших таблиц.
Пример настройки:
autovacuum_max_parallel_workers = 2;
ALTER TABLE big_orders SET (autovacuum_parallel_workers = 2);
А ещё в PostgreSQL 19 был изменён подход к выбору таблиц для автоматической очистки. Теперь система отдаёт приоритет не произвольной таблице, а той, которая в данный момент требует обслуживания в наибольшей степени. Для этого учитываются несколько факторов, включая близость к переполнению счётчика транзакций, количество строк, подлежащих очистке, и другие показатели нагрузки. Такой механизм делает autovacuum более предсказуемым и эффективным при работе с большими базами данных.
Нам лишь остается отметить, токмо справедливости ради и никак не флейма для, что в InnoDB параметр innodb_purge_threads был добавлен в MySQL 5.6 в 2013 году. Вот живите теперь с этим и продолжайте бояться ужасного Oracle.
Прошлые выпуски: PG19-I, PG19-II, PG19-III и PG19-IV