SQLite - VACÍO

El comando VACUUM limpia la base de datos principal copiando su contenido en un archivo de base de datos temporal y volviendo a cargar el archivo de base de datos original desde la copia. Esto elimina las páginas libres, alinea los datos de la tabla para que sean contiguos y limpia la estructura de archivos de la base de datos.

El comando VACUUM puede cambiar el ROWID de las entradas en tablas que no tienen una CLAVE PRIMARIA INTEGER explícita. El comando VACUUM solo funciona en la base de datos principal. No es posible aspirar un archivo de base de datos adjunto.

El comando VACUUM fallará si hay una transacción activa. El comando VACUUM no es una operación para las bases de datos en memoria. A medida que el comando VACUUM reconstruye el archivo de la base de datos desde cero, VACUUM también se puede utilizar para modificar muchos parámetros de configuración específicos de la base de datos.

VACÍO manual

A continuación se muestra una sintaxis simple para emitir un comando VACUUM para toda la base de datos desde el símbolo del sistema:

$sqlite3 database_name "VACUUM;"

Puede ejecutar VACUUM desde el indicador de SQLite, así como lo siguiente:

sqlite> VACUUM;

También puede ejecutar VACUUM en una mesa en particular de la siguiente manera:

sqlite> VACUUM table_name;

Auto-VACÍO

SQLite Auto-VACUUM no hace lo mismo que VACUUM, sino que solo mueve las páginas libres al final de la base de datos, lo que reduce el tamaño de la base de datos. Al hacerlo, puede fragmentar significativamente la base de datos, mientras que VACUUM garantiza la desfragmentación. Por lo tanto, Auto-VACUUM solo mantiene la base de datos pequeña.

Puede habilitar / deshabilitar la aspiración automática de SQLite mediante los siguientes pragmas que se ejecutan en el indicador de SQLite:

sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum
sqlite> PRAGMA auto_vacuum = FULL; -- 1 means enable full auto vacuum
sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 means enable incremental vacuum

Puede ejecutar el siguiente comando desde el símbolo del sistema para verificar la configuración de vacío automático:

$sqlite3 database_name "PRAGMA auto_vacuum;"