Re: COUNT(*) дофига весит

Поиск
Список
Период
Сортировка
От Maxim Boguk
Тема Re: COUNT(*) дофига весит
Дата
Msg-id 48070192.7050609@masterhost.ru
обсуждение исходный текст
Ответ на Re: COUNT(*) дофига весит  (silly_sad <sad@bankir.ru>)
Ответы Re: COUNT(*) дофига весит  (silly_sad <sad@bankir.ru>)
Список pgsql-ru-general
silly_sad пишет:
> Alex Gorbachenko wrote:
>
>> silly_sad wrote:
>>
>  >> и не понял, каким образом автовакуум избавит меня от необходимости
>  >> FULL вакуума ?
>
>  > тем, что он всё сделает за вас. причём при правильных настройках на
>  > производительности всего остального его работа не скажется.
>
> делает ли он за меня FULL ? или каким-то образом делает FULL ненужным?

В нормальной ситуации правильно настроенный autovacuum действительно делает vacuum full ненужным.

По одной причине: vacuum помечает удаленные записи как место которое можно повторно использовать.
Если таблицу обновляется очень активно то за сутки между запусками vacuum full таблица успевает очень сильно
разрастись.
Делать же ежеминутный просто vacuum не выгодно так как он будет vacuum всего подряд а не только тех таблиц которые
обновились.
(а autovacuum отслеживает степень обновления таблиц).
Autovacuum просто не дают таблице распухать выше определенного предела так как свободное место будет отмечено и
повторноиспользовано. 
(как правило удается держать таблицы в неболее чем 2х кратном размере от минимально возможного).

Если у вас есть активнообновляемые таблицы то настройки могут выглядеть приблизительно так:
autovacuum = on
autovacuum_naptime = 1min
Остальные параметры пока можно не трогать.

PS: если у вас есть активное обновление я бы рекомендовал раз в неделю или месяц делать REINDEX DATABASE (так как
индексытоже имеют свойство распухать со временем) 
Но Reindex так же блокирует доступ к таблице как и vacuum full.

PPS: надо понимать что просто vacuum (без full) не блокирует работу с таблицей и не сказывается на работоспособности
сервиса...

PPPS: для работоспособности autovacuum надо не забывать включать (пре 8.3):
stats_start_collector = on
stats_block_level = on
stats_row_level = on
(на 8.3 просто надо указать: track_counts = on)

>
>>> Объясните пожалуйста, в чем разница между авто и еженочным vaccuum
>>> analyze?
>>
>> в том, что autovacuum проверяет количество измененных
>> записей в таблицах, и запускается в случае, если это количество
>> некоего числа. что позволяет "размазать" вакуум по времени. по моему в
>> документации это написано довольно подробно.
>
> Алгоритм запуска этой процедуры мне понятен.
> Мне непонятно каким образом частые вакуумы оказываются более
> эффективными в смысле очистки места чем ежесуточные.
>
> насколько я смог судить из документации автомат вызывает
> VACUUM.
> А меня сейчас спасает только VACUUM FULL (ежесуточного хватает).
> (Несколько таблиц очень интенсивно апдэйтятся)
>
>
>


--
Maxim Boguk

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Alexey Klyukin
Дата:
Сообщение: Re: COUNT(*) дофига весит
Следующее
От: silly_sad
Дата:
Сообщение: Re: COUNT(*) дофига весит