PostgreSQL VACUUM: Warum der Speicher erst nach dem Index-Cleanup freigegeben wird

Vacuum at the Page Level

PostgreSQL VACUUM: Warum der Speicher erst nach dem Index-Cleanup freigegeben wird

Dieser Artikel zeigt Byte für Byte, wie PostgreSQLs VACUUM tote Tupel entfernt. Anhand einer Beispieltabelle wird sichtbar, dass die eigentliche Speicherfreigabe bereits in der ersten Phase (Pruning) erfolgt, während die Zeiger (Line Pointer) erst nach der Indexbereinigung freigegeben werden. Mit pageinspect, pg_visibility und pg_freespacemap wird der Unterschied zwischen LP_DEAD und LP_UNUSED deutlich – und warum Indizes den zweistufigen Prozess erfordern.

Die toten Tupel sind Bloat, und sie bleiben so, bis VACUUM eintrifft.

Mehr von diesem Tag

2026-07-09