Postgres, pg_upgrade и TOAST

Вопрос больше консультационного характера. На хабре был замечен комментарий: "Вариант с pg_upgrade потребует от администратора базы меньше времени на подготовку, однако придётся обновлять все индексы(при обновлении до 12 или 13 версии) и пересобирать toast таблицы(в случае обновления до 14) . "

Если с индексами всё +- понятно, так сказать шишки набивались. То вот про вариант с toast хотелось бы получить больше информации.

Коллеги, прошу прощения что задаю вопрос без конкретной проблемы. Просветите пожалуйста.


Ответы (1 шт):

Автор решения: Мелкий

pg_upgrade как правило требует сопоставимое время на подготовку, в сравнении с обновлением с использованием дампов, но обеспечивает наименьшее время недоступности базы при обновлении в --link или --clone режимах. pg_upgrade не требует ничего делать с индексами или с toast. Файлы данных намеренно бинарно совместимы при обновлениях через pg_upgrade.

Администратор может запланировать что-нибудь сделать дополнительно после обновления по своему усмотрению. Например, если считает, что для этого проекта что-то из новинок этого релиза окажется полезным. Процитированный комментатор, вероятно, подразумевал btree v4 и index deduplication. Про toast единственная догадка, что комментатор подразумевал (но не упомянул или вы обрезали цитатой) своё желание сменить default toast compression с pglz на lz4. Но то во-первых не дефолтное изменение, а во-вторых нужно проверять на конкретных данных. lz4 может в реальности сжиматься хуже чем pglz и не может быть рекомендован повсеместно. Рост реальной таблички процентов на 10% без положительных эффектов дело такое, не очень интересное.

А есть ли что-то в новом релизе интересное и надо ли что-то делать после обновления дополнительно чтобы воспользоваться возможностью - то нужно читать в release notes и документации по этой новой фиче.

→ Ссылка