Sobes.tech
Senior

¿Qué hace VACUUM en PostgreSQL y por qué aparecen filas muertas?

sobes.tech AI

Respuesta de la IA

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

El comando VACUUM limpia estas filas 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 además comprime la tabla, reduciendo su tamaño físico.

Ejemplo:

VACUUM my_table;

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