SQLITE-Datenbank; eingebettete Beziehungsdatenbank

[?v?kju?m]

N. Mit einem Staubsauger reinigen.

SQLite Vacuum-Befehl Syntax

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 Beispiel

SQLite 的 Auto-VACUUM 與 VACUUM 不大一樣,它只是把空閑頁(yè)移到數(shù)據(jù)庫(kù)末尾,從而減小數(shù)據(jù)庫(kù)大小。通過(guò)這樣做,它可以明顯地把數(shù)據(jù)庫(kù)碎片化,而 VACUUM 則是反碎片化。所以 Auto-VACUUM 只會(huì)讓數(shù)據(jù)庫(kù)更小。

在 SQLite 提示符中,您可以通過(guò)下面的編譯運(yùn)行,啟用/禁用 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
您可以從命令提示符中運(yùn)行下面的命令來(lái)檢查 auto-vacuum 設(shè)置:

$sqlite3 database_name "PRAGMA auto_vacuum;"