PostgreSQL: как включить автоочистку?

Как включить автоочистку в PostgreSQL? Я понимаю цель, я просто не могу найти простой ответ о том, как его включить.


person JTW    schedule 28.10.2015    source источник


Ответы (2)


Автоочистка включена по умолчанию. Для небольших баз данных просто ничего не делайте, и все будет работать нормально. Для подтверждения проверьте

SHOW autovacuum;

в psql. Он должен сообщить on.

Большие и загруженные базы данных иногда требуют настройки, чтобы автоочистка выполнялась чаще или больше внимания уделялось загруженным таблицам очередей. Подробнее о настройке автоочистки см. в руководстве.

person Craig Ringer    schedule 28.10.2015
comment
Я проверил статус, как было предложено, и на самом деле команда вернулась. Возможно, я не понимаю, как работает автовакуум; Я продолжаю получать подсказки при использовании pgAdmin для запуска VACUUM... Я бы предположил, что autovacuum автоматически запускает VACUUM для таблиц периодически. - person JTW; 29.10.2015
comment
@woogy Так и есть. Может быть, pgadmin считает, что для определенных таблиц нужно больше? Также бывают ситуации с некоторыми рабочими нагрузками, когда автоочистка не справляется с настройками по умолчанию. В основном заняты столы очереди. Было бы лучше, если бы y8u показывал сообщения. .. - person Craig Ringer; 29.10.2015

Вы также можете запустить пылесос вручную. Запустив команду psql vacuum full analyze verbose. Это займет некоторое время.

person Neeraj Bansal    schedule 20.03.2019
comment
Имейте в виду, что это блокирует исключительно таблицы и поэтому не рекомендуется для больших производительных баз данных. autovacuum, напротив, работает с дросселированием. - person Peopleware; 16.12.2019