Inside the 8KB Page: PostgreSQL Page Layout Visualized

1 min read Original article ↗

Each 8KB page has four key regions: a 24-byte header, line pointers (4 bytes each, growing downward), free space, and tuple data (packed upward from the bottom).

Click Insert Row to watch the opposing growth directions in action. Delete Row marks a tuple dead (sets t_xmax) without reclaiming space. Same as PostgreSQL's MVCC. Click any region or tuple card for byte-level details.

Page Inspector click a region on the map small regions enlarged for clarity · thin bar shows actual proportions

Header 24 B

Free Space 8168 B

0 8192

Tuple Inspector page_demo (id int, title text, created_at timestamptz, amount numeric)