Как стать автором
Обновить

Комментарии 9

10 Гб освобожденного пространства звучит очень неплохо, но сколько это будет в процентах от полного размера базы?

НЛО прилетело и опубликовало эту надпись здесь

По-моему, здесь основной эффект не в том, что размер базы уменьшился на Х процентов, а в том, что ускорилось чтение по большому количеству индексов.

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

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

У нас однажды так сломался отчет - вместо минут начал считаться десятки часов. И естественно - "никто ничего не делал". Потратили несколько дней, чтобы починить и только потом выяснилось, что "все таки делали, но уже месяц назад, а это уже как-бы не считается".

Вам повезло. У меня была ситуация, когда отчёт запускался раз в год, и "тестовое отключение" хоста, на который этот отчёт был завязан произошло буквально сразу после подготовки данного отчёта, ну а через полгода отключенный хост был удалён... а ещё через полгода появился тикет "ошибка построения отчёта по амортизации ОС" - было достаточно неприятно...

Чтобы избежать блокировки, можно перестроить индекс с параметром CONCURRENTLY :

Как раз на днях зарелизили версию с исправлением бага, приводящего к скрытому повреждению индексов при таком перестроении :)

The PostgreSQL Global Development Group has released PostgreSQL 14.4 to fix an issue that could cause silent data corruption when using the CREATE INDEX CONCURRENTLY or REINDEX CONCURRENTLY commands.

Это касалось только 14й версии. На 13й и ниже этого бага нет.

В целом сборка нескольких статей из хабра про использование частичных индексов, вакуума, у даление лишних индексов, переиндексация при блоате.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий