Storage & row versions🔒 Pro lessonSource-grounded1 real lab transcript

HOT Updates: Same-Page Versions Without Index Writes

When you update a row, PostgreSQL usually writes a new copy and also updates every index.

If you only changed columns that no index cares about, and the page still has room, it can leave the indexes alone and chain the new copy on the same page, that is a HOT update. Dead copies on that page are cleaned up later when the page is pruned, not at the moment of the UPDATE.

ProLesson body

Pro members see the rest of this lesson

  • A 4-step state diagram: Before → Update → Chain → Prune
  • The full mechanism: what PostgreSQL does internally, in source terms
  • 2 SQL queries you can run, each labelled by how it was verified
  • 1 transcript captured on PostgreSQL 17.10
  • The closing insight, the mistake it prevents, and what it changes in your work

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

Compare plans

Want to read a full lesson first? Five are free end to end, one from each major track. Start with MVCC internals.
Check it against the source4 citations in postgres/postgres · file, symbol and line verified on REL_17_STABLE
src/backend/access/heap/heapam.cVerified · REL_17_STABLE

Primary symbol: heap_update · line 3346

src/include/storage/itemid.hVerified · REL_17_STABLE

Primary symbol: LP_REDIRECT · line 40

Anchored to postgres/postgres on REL_17_STABLE and cross-checked against the manual for PostgreSQL 15–18. Every query here was run and its output captured on a throwaway PostgreSQL 17.10 lab; corrections are noted inline. §73.7 Heap-Only Tuples (HOT) in the official docs →

ShareLinkedInX

Finished a free lesson?

Pro opens the rest of the engine course

You felt one mechanism. Pro is the full bodies, interview depth, and the tracks that build on this session.

FollowSubstackLinkedInnew errors · lab notes · hiring loops