WeSearch

Toast: Where PostgreSQL hides big values

Radim Marek· ·12 min read · 0 reactions · 0 comments · 13 views
#postgresql#database#data-storage
Toast: Where PostgreSQL hides big values
⚡ TL;DR · AI summary

PostgreSQL utilizes a mechanism called TOAST to manage oversized attributes within its strict 8KB page limit. When a tuple exceeds a 2KB threshold, PostgreSQL begins a process to compress and relocate the data to ensure efficient storage. The article outlines the various storage strategies and the steps involved in the shrinking procedure for variable-length attributes.

Key facts
Original article
boringSQL | Supercharge your SQL & PostgreSQL powers · Radim Marek
Read full at boringSQL | Supercharge your SQL & PostgreSQL powers →
Opening excerpt (first ~120 words) tap to expand

Table of Contents The 2KB threshold The four storage strategies The shrinking procedure Watching it happen What the heap tuple looks like Compression: pglz vs lz4 What it costs you Limits Following a tuple through the toaster Keeping the page invariant safe In earlier posts in this series we established that every heap tuple lives inside a strict 8KB page. Everything else is built on top of that hard limit: MVCC, HOT updates, and indexes that point at (page, line_pointer). And yet this still works: CREATE TABLE docs (id int PRIMARY KEY, body jsonb); INSERT INTO docs VALUES (1, (SELECT jsonb_agg(g) FROM generate_series(1, 100000) g)); That body value is somewhere north of half a megabyte. The heap page is still 8KB.

Excerpt limited to ~120 words for fair-use compliance. The full article is at boringSQL | Supercharge your SQL & PostgreSQL powers.

Anonymous · no account needed
Share 𝕏 Facebook Reddit LinkedIn Threads WhatsApp Bluesky Mastodon Email

Discussion

0 comments