SQLite - VIDE

La commande VACUUM nettoie la base de données principale en copiant son contenu dans un fichier de base de données temporaire et en rechargeant le fichier de base de données d'origine à partir de la copie. Cela élimine les pages libres, aligne les données de table pour qu'elles soient contiguës et nettoie autrement la structure des fichiers de la base de données.

La commande VACUUM peut modifier le ROWID des entrées dans les tables qui n'ont pas une clé PRIMAIRE INTEGER explicite. La commande VACUUM ne fonctionne que sur la base de données principale. Il n'est pas possible de VACUUM un fichier de base de données joint.

La commande VACUUM échouera s'il y a une transaction active. La commande VACUUM est un no-op pour les bases de données en mémoire. Comme la commande VACUUM reconstruit le fichier de base de données à partir de zéro, VACUUM peut également être utilisé pour modifier de nombreux paramètres de configuration spécifiques à la base de données.

VIDE manuel

Voici une syntaxe simple pour émettre une commande VACUUM pour toute la base de données à partir de l'invite de commande -

$sqlite3 database_name "VACUUM;"

Vous pouvez exécuter VACUUM à partir de l'invite SQLite comme suit -

sqlite> VACUUM;

Vous pouvez également exécuter VACUUM sur une table particulière comme suit -

sqlite> VACUUM table_name;

Auto-VACCUM

SQLite Auto-VACUUM ne fait pas la même chose que VACUUM mais déplace uniquement les pages libres vers la fin de la base de données, réduisant ainsi la taille de la base de données. Ce faisant, il peut fragmenter considérablement la base de données tandis que VACUUM assure la défragmentation. Par conséquent, Auto-VACUUM maintient simplement la petite base de données.

Vous pouvez activer / désactiver l'aspiration automatique SQLite à l'aide des pragmas suivants s'exécutant à l'invite 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

Vous pouvez exécuter la commande suivante à partir de l'invite de commande pour vérifier le paramètre de vide automatique -

$sqlite3 database_name "PRAGMA auto_vacuum;"