Дело такое, есть сервер который каждые 2-3 сек обновляет , вставляет и удаляет данные из нескольких таблиц.
Если не делать вакуумизацию 3-4 часа , то нагрузка на сервер начинает расти. После вакуумизации все сразу становится на свои места , и загрузка становиться минимальной. ну в крод конечно скрипт засунул который раз в час делает вакуумизацию нужных таблиц. А вот разумно ли вообще, после каждого запроса изменяющего данные делать запрос вакуумизации этой таблицы?и вообще если есть какие нибудь мудрости по этому поводу, напишите.
спасибо
>и вообще если есть какие нибудь мудрости по этому поводу, напишите.
>спасибоIMHO можно добавить памяти (у меня MySQL, так что про Postgres могу только гадать).
В современных серьёзных серверах вся база (терабайты!) сидит в оперативной памяти.
>>и вообще если есть какие нибудь мудрости по этому поводу, напишите.
>>спасибо
>
>IMHO можно добавить памяти (у меня MySQL, так что про Postgres могу
>только гадать).
>
>В современных серьёзных серверах вся база (терабайты!) сидит в оперативной памяти.
Спасибо, за помощь. Действительно в более всежих версия есть демон pg_autovacuum.
спасибо, но все же кто нибудь скажет, разумно ли делать вакуумизацию после каждой оперции записи, изменения и удаления?
нет, конечно, иначе зачем тогда механизм переиспользования освобожденных блоков? Лужше уж каким-то образом включать пылес, когда отношение размера таблицы к кол-ву записей перепрыгивает через некий порог (т.е. накопилось много пустых блоков)
>спасибо, но все же кто нибудь скажет, разумно ли делать вакуумизацию после
>каждой оперции записи, изменения и удаления?Для начала можно попробовать установить pgsql посвежее и слегка
поиграться параметрами. Кажется, там были возможности для частичной
(полу?)автоматической вакумизации.А так действительно геморрой. Аки дитё малое - СУБДа за собой прибрать
свой собственный мусор не может.
Это просто растут таблицы анализа. Как-то можно отключить анализирование или задать его пределы, но как - не помню. В качестве более легкой альтернативы VACUUM можно использовать VACUUM ANALIZE.---
to x55:
Слушай DeadMustdie, дело говорит.
Помнится, при переходе с 7.1 на 7.3 в этом плане резко полегчало :)
>в час делает вакуумизацию нужных таблиц. А вот разумно ли вообще,
>после каждого запроса изменяющего данные делать запрос вакуумизации этой таблицы?Не разумно.
>и вообще если есть какие нибудь мудрости по этому поводу, напишите.
>спасибоВ contrib'ах есть pg_autovacuum, который периодически смотрит таблицы со статистикой и когда нужно делает vacuum. Но для его работы нужно в postgresql.conf активировать "stats_row_level = true", который по умолчанию выключен и создает лишнюю нагрузку на базу.
Но лучше сделать так: эмпирически вычислить когда таблица на диске разростается и начинает тормозить и через крон настроить vacuum. Но не чаще чем раз в час.
В postgresql.conf shared_buffers и sort_mem увеличить до несколько тысяч.