/explain/toast

TOAST

Values too large for a page (beyond ~2 kB after compression) move to the table’s TOAST relation: a hidden companion table in pg_toast, chunked and indexed. It has its own statistics and its own autovacuum state, and it does not inherit the parent’s tuning: a JSONB-heavy table can keep a tidy heap while its TOAST relation bloats or burns through xids unnoticed. You cannot ALTER the toast table directly; set toast.autovacuum_* parameters on the parent.

SEE ALSO
bloatautovacuum_vacuum_threshold← back to start
Monitoring that only watches public.* misses TOAST age entirely; the forced freeze scan of a multi-TB pg_toast table is a classic surprise.
TOAST — robovac