PDA

Просмотр полной версии : Размер БД основной



AlexBut
07.10.2025, 12:37
Здравствуйте!
Основная БД PostgreSQL выросла более 100Гб - настроили в MS4D -максимальный размер 90 Гб, период хранения 35 дней,
но она сама не уменьшилась.(65 Гб размер таблицы data_raw и 45 Гб примерно размер индекса этой таблицы были)
Сначала провели процедуры обслуживания vacuum-analyzer и reindex-concurrent -размер не уменьшился.
Удалили через DELETE старые записи(старше месяца) из таблицы data_raw - но размер не уменьшился(размер смотрим в pgAdmin4),
провели процедуру обслуживания -vacuum-analyzer - размер не изменился,
провели процедуру обслуживания -reindex-concurrent - размер уменьшился до 80 Гб.
Во-первых почему MS4D сама не уменьшает размер , хотя настройка максимального размера есть
Во-вторых мы согласны сами её резать, но подскажите, пож-та, правильную процедуру этого.

VladGC
07.10.2025, 12:49
Здравствуйте!
Основная БД PostgreSQL выросла более 100Гб - настроили в MS4D -максимальный размер 90 Гб, период хранения 35 дней,
но она сама не уменьшилась.(65 Гб размер таблицы data_raw и 45 Гб примерно размер индекса этой таблицы были)
Сначала провели процедуры обслуживания vacuum-analyzer и reindex-concurrent -размер не уменьшился.
Удалили через DELETE старые записи(старше месяца) из таблицы data_raw - но размер не уменьшился(размер смотрим в pgAdmin4),
провели процедуру обслуживания -vacuum-analyzer - размер не изменился,
провели процедуру обслуживания -reindex-concurrent - размер уменьшился до 80 Гб.
Во-первых почему MS4D сама не уменьшает размер , хотя настройка максимального размера есть
Во-вторых мы согласны сами её резать, но подскажите, пож-та, правильную процедуру этого.

попробуйте Vacuum FULL
analyzer если не ошибаюсь служит для сбора статистики

МихаилГл
07.10.2025, 12:50
Здравствуйте!
Основная БД PostgreSQL выросла более 100Гб - настроили в MS4D -максимальный размер 90 Гб, период хранения 35 дней,
но она сама не уменьшилась.(65 Гб размер таблицы data_raw и 45 Гб примерно размер индекса этой таблицы были)
Сначала провели процедуры обслуживания vacuum-analyzer и reindex-concurrent -размер не уменьшился.
Удалили через DELETE старые записи(старше месяца) из таблицы data_raw - но размер не уменьшился(размер смотрим в pgAdmin4),
провели процедуру обслуживания -vacuum-analyzer - размер не изменился,
провели процедуру обслуживания -reindex-concurrent - размер уменьшился до 80 Гб.
Во-первых почему MS4D сама не уменьшает размер , хотя настройка максимального размера есть
Во-вторых мы согласны сами её резать, но подскажите, пож-та, правильную процедуру этого.

Не знаю как в постгресе, но в MSSQL надо делать команду урезания SHRINK, а никакие удаления из самой базы ее не уменьшают, только делают в ней "пустые" места без изменения последнего достигнутого размера как такового!

pavel.migdalev
07.10.2025, 14:05
В PostgreSQL 9.5 делаю так:
DELETE FROM TableName...;
VACUUM FULL ANALYZE TableName;
где TableName - имя Вашей таблицы в БД.
Если сделать только DELETE, то данные удалятся, но размер БД не уменьшится.
VACUUM FULL ANALYZE также делает и REINDEX (переиндексирование индексов).