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 不大一樣,它只是把空閑頁移到數(shù)據(jù)庫末尾,從而減小數(shù)據(jù)庫大小。通過這樣做,它可以明顯地把數(shù)據(jù)庫碎片化,而 VACUUM 則是反碎片化。所以 Auto-VACUUM 只會讓數(shù)據(jù)庫更小。
在 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 設(shè)置:
$sqlite3 database_name "PRAGMA auto_vacuum;"