Настройка AUTOVACUUM на уровне таблицы

То, что AUTOVACUUM крайне полезен для любой базы данных, даже не стоит обсуждать. Его нужно включать обязательно. Но иногда нужно аккуратная настройка AUTOVACUUM на уровне таблиц, а не использовать одинаковые параметры установленные на уровне сервера. Особенно важно это для случаев, когда в базе данных есть таблицы разных размеров. Например одна или несколько намного больше, чем остальные. В таком случае вам нужно настроить AUTOVACUUM отдельно для больших таблиц, что бы иметь лучшую производительность, чем при настройках по умолчанию.

Немного напомню, что такое AUTOVACUUM. Это возможность PostgreSQL периодически запускать команды ANALYZE и VACUUM для таблиц, которые достигли пределов по измененным (вставленным, удаленным) записям. Т.е. когда вы включаете AUTOVACUUM, PostgreSQL периодически проверяет статистику таблиц. И если в таблице количество вставленных/удаленных/измененных записей больше, чем установленные лимиты, то на таблице выполняются команды ANALYZE и VACUUM. Все настройки AUTOVACUUM находятся в файле конфигурации сервера. Т.е. они общие для всех таблиц, независимо от их размера и частоты обновления.

Но одни и те же настройки не могут работать одинаково полезно для разных таблиц. Наприм, если таблица изменяется редко, то наверное лучше заставить проводить AUTOVACUUM при меньшем изменении строк. Для больших таблиц, которые часто обновляются и запрашиваются так же надо настроить AUTOVACUUM так, что бы он поддерживал как можно более быстрый доступ к данным. Таблицы которые редко запрашиваются могут обрабатываться командой AUTOVACUUM не так часто. В общем, конкретная настройка зависит от базы данных и конкретного приложения.
А теперь самое главное. Как изменить настройки AUTOVACUUM на уровне таблицы. А это очень просто. Нужно просто выполнить следующий SQL запрос:

ALTER TABLE SET (autovacuum_enabled = true,
autovacuum_vacuum_scale_factor = x.xxx,
autovacuum_analyze_scale_factor = y.yyy);

И это все. Просто используйте нужные параметры x.xxx и y.yyy.
Так же можно изменять и другие параметры для AUTOVACUUM. Посмотрите мою предыдущую статью, в которой описываются все эти параметры: НАСТРОЙКИ AUTOVACUUM

Добавить комментарий

Ваш e-mail не будет опубликован.