[Tutorial] Compacta y repara bases de datos SQLite

23 agosto 2009 Publicado por cLimbo
SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, y que está contenida en una relativamente pequeña (~225 kB[1] ) biblioteca en C.

Cuando creamos una tabla, base de datos o datos y estos se han eliminado/borrado se deja el espacio vacío en la misma, este espacio vacío se reutilizarán la próxima vez que se añade nueva información a la base de datos, pero mientras tanto, el archivo de base de datos podría ser más grande. Además, las frecuentes inserciones, actualizaciones, puede causar que base de datos se fragmente.

Por ejemplo firefox mantiene una base de datos en sqlite donde almacena los datos del firefox resulta conveniente compactar para eliminar datos erróneos o borrados de la base de datos.

Para compactar y corregir todos los ficheros sqlite tan fácil como este pequeño script:

for db in `locate '*.sqlite'`; do
sqlite3 'VACUUM' $db 2>/dev/null
done

Para que resulte eficaz deberemos cerrar los programas que usan esta base de datos si no veremos algo como:

SQL error: database is locked

Si no tenemos sqlite3 deberemos de instalarlo:

sudo aptitude install sqlite3


Hay alguna aplicación que nos permite visualizar los datos incluso añadir datos nuevos o crear bases de datos, tablas:

sudo aptitude install sqlitebrowser


Es tan fácil como decirle a nuestro gestor de archivos que los ficheros sqlite los abra con sqlitebrowser, a partir de este momento podremos operar sobre la base de datos y nos resultara útil también para compactar la base de datos ya que este programita cuenta con dicha utilidad:



Desde la linea de comandos podremos interactuar con nuestra base de datos de esta manera:

sqlite3 db.sqlite


La sintaxis es prácticamente igual a MySQL y os resultara familiar si sabéis MySQL.

Un saludo

Artículo cedido por un conocido; chakal^-^.