The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"PostgreSQL база пухнет"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"PostgreSQL база пухнет"
Сообщение от Александр emailИскать по авторуВ закладки on 19-Июн-03, 14:55  (MSK)
Версия PostgreSQL - 7.3.1 + hier 0.3

Сабж! Пухнет крохотная база на несколько тысяч записей.
Регулярно (раз в полчаса) по одно таблице пробегается робот и изменяет одно поле. При этом отрабатывает триггер, обновляющий txtidx-поле в этой же таболице.

После чего размер базы увеличивается на ~2 мегабайта. Сутки - 50 Мб.

pg_dump всей базы - около 600 кб.

Что происходит и как этого избежать? Мама дорогая, у меня за два дня оно пожрало все место на хостинге и сдохло.

Пока только вариант регулярного pg_dump && dropdb && createdb && psql -f. Но это же не круто!

Теперь риторический вопрос: Шо это вообще такое, я же даже не инсерты делаю, а апдейты! Размер записи не меняется (точно), а база пухнет!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "PostgreSQL база пухнет"
Сообщение от uldus Искать по авторуВ закладки on 19-Июн-03, 15:38  (MSK)
>Сабж! Пухнет крохотная база на несколько тысяч записей.
>Регулярно (раз в полчаса) по одно таблице пробегается робот и изменяет одно
>поле. При этом отрабатывает триггер, обновляющий txtidx-поле в этой же таболице.

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

Для решения проблемы нужно делать VACUUM FULL, как можно чаще, но на время его выполнении таблица блокируется.

>Теперь риторический вопрос: Шо это вообще такое, я же даже не инсерты
>делаю, а апдейты!

Если бы делал инсерты, то новые записи занимали бы место дырок после апдейта.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "PostgreSQL база пухнет"
Сообщение от Александр Искать по авторуВ закладки on 19-Июн-03, 19:20  (MSK)
>>Сабж! Пухнет крохотная база на несколько тысяч записей.
>>Регулярно (раз в полчаса) по одно таблице пробегается робот и изменяет одно
>>поле. При этом отрабатывает триггер, обновляющий txtidx-поле в этой же таболице.
>
>При апдейте записи, изменяемые данные остаются на месте, на случай отката транзакции,
>плюс отдельно создается копия новых данных с внесенными изменениями. Т.е. на
>каждый проход твоего триггера физический объем таблицы на диске удваивается.
>
>Для решения проблемы нужно делать VACUUM FULL, как можно чаще, но на
>время его выполнении таблица блокируется.
>
>>Теперь риторический вопрос: Шо это вообще такое, я же даже не инсерты
>>делаю, а апдейты!
>
>Если бы делал инсерты, то новые записи занимали бы место дырок после
>апдейта.

Круто. А я думал, данные для отката не нужны, если транзакция завершилась. Или это только я такой умный?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру