SQLITE-Datenbank; eingebettete Beziehungsdatenbank
[ˈvækjuəm]N. Mit einem Staubsauger reinigen.
Funktion: Der VACUUM-Befehl kopiert den Inhalt der Hauptdatenbank in eine temporäre Datenbankdatei, löscht dann die Hauptdatenbank und lädt die ursprüngliche Datenbankdatei aus der Kopie neu. Dadurch werden freie Seiten eliminiert, die Daten in der Tabelle zusammenhängend angeordnet und die Datenbankdateistruktur bereinigt. Wenn die Tabelle keinen expliziten ganzzahligen Primärschlüssel (INTEGER PRIMARY KEY) hat, kann der VACUUM-Befehl die Zeilen-ID (ROWID) des Eintrags in der Tabelle ändern. Der VACUUM-Befehl funktioniert nur auf der Hauptdatenbank, angehängte Datenbankdateien sind mit dem VACUUM-Befehl nicht möglich. Der VACUUM-Befehl schlägt fehl, wenn eine aktive Transaktion vorhanden ist. Der VACUUM-Befehl ist eine Operation für jede In-Memory-Datenbank. Da der VACUUM-Befehl die Datenbankdatei von Grund auf neu erstellt, kann VACUUM auch zum Ändern vieler datenbankspezifischer Konfigurationsparameter verwendet werden. Syntax: $sqlite3 Datenbankname „VACUUM;“ VACUUM Tabellenname;SQLite Vacuum-Befehl Syntax
SQLite Vacuum-Befehl Beispiel
SQLite 的 Auto-VACUUM 与 VACUUM 不大一样,它只是把空闲页移到数据库末尾,从而减小数据库大小。通过这样做,它可以明显地把数据库碎片化,而 VACUUM 则是反碎片化。所以 Auto-VACUUM 只会让数据库更小。
在 SQLite 提示符中,您可以通过下面的编译运行,启用/禁用 SQLite 的 Auto-VACUUM:
sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum
sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 1 means enable incremental vacuum
sqlite> PRAGMA auto_vacuum = FULL; -- 2 means enable full auto vacuum
您可以从命令提示符中运行下面的命令来检查 auto-vacuum 设置:
$sqlite3 database_name "PRAGMA auto_vacuum;"