Heap storage & bloatsenior🔒 Pro concept

TOAST (The Oversized-Attribute Storage Technique): compression, out-of-line storage, chunking

Simple terms

A row has to fit inside an 8KB page. So how do you store a 1MB jsonb value in a column? You don't, not inline. When a row comes out too big, Postgres first tries compressing the wide columns, and if that gets it under the limit, it stops there.

If not, the value moves out to a hidden companion table, sliced into fixed-size chunks, leaving a small pointer behind where it used to be. Reading it back means fetching those chunks and rebuilding the value, which is why SELECT * over a wide table costs more than you would guess.

You might be asked

A heap tuple has to fit on an 8KB page, yet you can store a 1MB text or jsonb value in a column. Explain how. Walk me through what the 'toaster' does when a row is too big, the order of operations, the difference between the four storage strategies (PLAIN/MAIN/EXTERNAL/EXTENDED), where the bytes actually end up, and how a value is reassembled on read. Then tell me the practical performance traps TOAST creates.

TopicLarge value storage / varlena / TOAST_TUPLE_THRESHOLD / in-line compression (pglz, lz4) / external storage in pg_toast sidecar / TOAST_MAX_CHUNK_SIZE chunking / storage strategies plain-main-external-extended
PostgreSQL14, 15, 16, 17, 18
Tools usedpg_column_size, octet_length, pg_class.reltoastrelid, pg_attribute.attstorage, direct SELECT on pg_toast.* chunk rows, ALTER TABLE ... SET STORAGE, source navigation @REL_17_10, PG 17.10
Last reviewed2026-06-19

Pro concept

Full answer and evidence depth sit behind Pro

You have the question and a plain-English lead. Pro unlocks the short answer, what the docs say, what the code does, the labeled lab evidence or reproduction protocol, how to use it under pressure, and the references.

ProFull answer + evidence depth

Unlock the full breakdown for TOAST (The Oversized-Attribute Storage Technique): compression, out-of-line storage, chunking

You have the interview question and a plain-English lead. Pro opens the short answer, the manual walkthrough, the source decode, and a 54-line evidence section that states whether it is raw output, a captured run summary, or a protocol to run yourself, plus how to use it under pressure.
  • How you'd answer it, the full senior-level short answer
  • What the docs say, the manual's actual wording, with the citations
  • What the code does, the mechanism decoded from PostgreSQL's own source at a pinned tag
  • Proof from a real run, labeled as raw output, a captured run summary, or a run-it-yourself protocol
  • Using it under pressure, the situation, the call you'd make, what goes wrong, and what people get wrong
  • Version notes, what changed across PostgreSQL releases
  • 7 interviewer follow-ups for this concept

Card required. Cancel before day 7 and you are not charged.

Compare plans

How this was verified

The open teaser is the question and a plain-English lead. The short answer, the manual walkthrough, the source decode, the lab evidence, and how to use it under pressure unlock with Pro. Evidence is labeled as raw output, a captured run summary, or a run-it-yourself protocol.

Connected

Where this concept connects

How this concept links across the library, the interview questions that test it, its plain-English glossary definition, and the guided pathways it belongs to. Open the full map to explore further.

Open in the interactive map →