Τι κάνει το 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.