Suffix truncation (pivot tuple)
Also called: pivot tuple truncation, _bt_truncate
When a B-tree splits, the boundary key copied up to the parent (a pivot tuple) only needs to be just distinct enough to separate the left page from the right. Suffix truncation (_bt_truncate() in nbtutils.c, PG12+) keeps only the leading column(s) needed to tell them apart and discards the trailing ones. The pivot becomes a router, not a copy of real data.
What this means
When a page splits, the boundary key copied up to the parent only has to be different enough to tell the left page from the right. Suffix truncation drops the trailing columns it doesn't need for that and keeps only the leading part. The parent's key becomes a signpost, not a full copy of real data, which keeps the upper levels small.
Why it matters operationally
Smaller pivot tuples mean more entries fit on each internal page, which raises fan-out and lowers the tree's height, so lookups touch fewer pages. This is why putting a short, selective column first in a composite index helps the index stay shallow and fast.