Как определить bloat в PostgreSQL?

Middle+
162 просмотров
AFK Offer AI

Bloat — это когда таблица/индекс занимает гораздо больше места, чем нужно, из-за мёртвых строк после UPDATE/DELETE. Проверяй через pgstattuple extension или запрос к pg_stat_user_tables — dead_tup_ratio. Если bloat > 20% — запусти VACUUM FULL (лочит таблицу) или pg_repack (онлайн). Причина bloat — autovacuum не успевает. Настрой aggressive autovacuum для горячих таблиц: уменьши threshold и scale_factor.

Следующий вопрос

Что выведет: func f() { defer func() { fmt.Println(recover()) }(); panic("oops"); fmt.Println("after panic") }?