¿Porque necesito compactar una base de datos PostgreSQL?
¿Que consecuencias tiene no compactar la base de datos?
Probablemente hayas llegado a este blog buscando la razon por la que la base de datos tiene un tamaño muy exagerado comparado con la cantidad de registros que tienes y el rendimiento de la base de datos en las instrucciones UPDATE, SELECT e INSERT se estan tardando demasiado en ejecutarse.
¿Cuales son y porque existen diferentes tipos de compactacion en PostgreSQL?
La compactacion en PostgreSQL se lleva a cabo usando el comando SQL VACUUM, sin embargo, este tiene varios modificadores o argumentos dependiendo de la necesidad o la ocasion, estas son las mas importantes:
VACUUM ANALIZE : Actualiza las estadisticas de almacenamiento de las tablas que son usadas por el motor de bases de datos para determinar la forma mas veloz de ejecutar una Consulta, sin embargo, este no bloquea la tabla de forma exclusiva y solo necesita un Cursor de Solo-Lectura, es decir, solo actualiza las estadisticas para mejorar los queries.
VACUUM FULL : Realiza una coleccion de registros eliminados completa reclamando espacio en la base de datos ocupado por registros marcados para ser eliminados. Este comando bloquea las tabla e impide que otras conexiones realicen operaciones sobre la tabla o las tablas afectadas.
Nota: para ambos comandos, el nombre de la tabla es opcional. Si no es especifica el nombre de la tabla, la operacion se realiza sobre la base de datos en la que la conexion donde se ejecuta el comando esta trabajando.
¿Cuando ejecutar cada tipo VACUUM?
Es recomendable realizar VACUUM ANALYZE despues de una considerable cantidad de modificaciones sobre una tabla y realizar VACUUM FULL cuando no exista utilizacion sobre la base de datos, por ejemplo en horas nocturnas fuera del horario de trabajo. pgAgent es un excelente ayudante para este tipo de trabajos programados.
¿Como ejecutar VACUUM en linea de comandos en el servidor?
Usando psql
Para esta tarea podemos usar la utilidad de terminal psql usando el usuario postgres, en ubuntu o debian podemos hacer esto usando los siguientes comandos:
$sudo su postgres
$psql
$VACUUM ;
NOTA: Para ver el progreso del comando puede utilizar el modificador VERBOSE
Para salir de la utilidad psql utilice \q
Usando pgAdminIII
1 comment:
Muy útil la información. Muchas Gracias. Augusto (ARG)
Post a Comment