Sobes.tech
Senior

Τι κάνει το VACUUM στο PostgreSQL και γιατί εμφανίζονται νεκρές γραμμές;

sobes.tech AI

Απάντηση από AI

En PostgreSQL, al actualizar o eliminar filas, las versiones antiguas de las filas no se eliminan de inmediato, sino que se convierten en "tuplas muertas" (dead tuples). Esto está relacionado con MVCC (Control de Concurrencia Multiversión), que garantiza el aislamiento de las transacciones. Las tuplas muertas ocupan espacio y pueden ralentizar el rendimiento de la base de datos.

El comando VACUUM limpia estas tuplas muertas, liberando espacio y evitando el crecimiento de tablas e índices. Existe un VACUUM normal, que simplemente marca el espacio como libre, y un VACUUM FULL, que comprime adicionalmente la tabla, reduciendo su tamaño físico.

Ejemplo:

VACUUM mi_tabla;

De esta manera, VACUUM mantiene el rendimiento y previene el uso excesivo del espacio en disco.