Como compactar bases de datos PostgreSQL

Puede ser que con el paso del tiempo nuestras bases de datos en PostgresSQL puedan llegar a volverse lentas o tender a ocupar un espacio demasiado grande.

Antecedentes

No voy a entrar en tecnicismos de bases de datos, tuplas, paginas , etc.. ni nada parecido simplemente voy a enseñarte de una forma rápida como compactar tu base de datos para ganar espacio y optimizarla y además de una forma gráfica utilizando pgAdmin.

Pero antes quiero que entiendas, a grandes rasgos, que cuando ejecutas el comando DELETE para eliminar un registro, realmente no estas eliminando los datos, los estas marcando como no disponibles. Al igual que cuando ejecutas un UPDATE, no lo estás actualizando, también será marcada como no disponible creando un nuevo registro.

Para eliminar realmente esos registros utilizamos el comando VACUUM.

VACUUM FULL es una versión más agresiva de VACUUM, bloquea la tabla, elimina los registros no utilizados (tuplas muertas y las páginas vacías), y luego devuelve el espacio recuperado al sistema operativo.

pgAdmin

Vemos el estado actual de las bases de datos y pulsamos botón derecho sobre una base de datos y elegimos Mantenimiento

En la ventana de Mantenimineto entre las opción es que nos ofrece tenemos la de poder ejecutar VACUUM FULL

Ventana de mantenimiento en pgAdmin

Comprobamos si el proceso ha terminado correctamente

Proceso VACUUM FULL completado

Podemos ver el resultado de ejecutar VACUUM FULL en todas las bases de datos

Resultado de VACUUM FULL en todas las bases de datos

Como puedes observar ha sido en las base de datos miniflux donde mas espacio hemos recuperado y algo menos en el resto

Espero que te haya gustado, pasa un gran día 🐧