PostgreSQL анализ и оптимизация базы данных с помощью команды VACUUM
Синтаксис команды
VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE } [, ...] ) ] [ table [ (column [, ...] ) ] ]
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
ANALYZE - сбор статистики для планировщика с целью более быстрого выполнения запросов.
VERBOSE - отвечает за вывод подробного отчета.
FULL - метод оптимизации, в котором таблица блокируется на время выполнения и создается ее копия, для чего требуется дополнительное дисковое пространство.
FREEZE - изменение номеров транзакций старше vacuum_freeze_min_age
Анализ и оптимизация текущей базы данных (в примере db1)
# su - postgres
$ psql db1
db1=# vacuum verbose analyze;
db1=# vacuum full;
Анализ таблицы
db1=# vacuum full analyze verbose table_test;
INFO: vacuuming "public.table_test"
...
Анализ поля таблицы
db1=# vacuum full analyze verbose table_test(name);
Для включения автоматического выполнения команды VACUUM, снимем символ комментария с параметров, находящихся в разделе AUTOVACUUM PARAMETERS в postgresql.conf . Параметр autovacuum должен быть включен (on).
Проверка включена ли работа автоматического выполнения команды
postgres=# pg_settings where name = 'autovacuum_naptime';