VACUUM en PostgreSQL: la limpieza de páginas, byte a byte

Vacuum at the Page Level

VACUUM en PostgreSQL: la limpieza de páginas, byte a byte

Este artículo técnico desglosa el funcionamiento interno de VACUUM en PostgreSQL, mostrando con capturas de páginas cómo se recupera el espacio de las tuplas muertas. Explica las tres fases del proceso: el escaneo del heap con pruning, la limpieza de índices y la liberación final de los punteros de línea. Destaca la diferencia clave entre LP_DEAD y LP_UNUSED, y cómo la presencia de índices obliga a un proceso en dos pasos. Incluye ejemplos con pageinspect, pg_visibility y pg_freespacemap.

El pruning no puede simplemente marcar el puntero de línea de una tupla eliminada como LP_UNUSED, porque los índices todavía apuntan a ella por TID.

Más de este día

2026-07-09