Latest web development tutorials

SQLite Vacuum

VACUUM-Befehl durch den Inhalt der primären Datenbank in eine temporäre Datenbank-Datei zu kopieren und dann die primäre Datenbank zu leeren, und das Original von der Kopie der Datenbank-Datei laden. Dies eliminiert freie Seiten, die Daten in der Tabelle in einer Reihe angeordnet sind, und der andere wird die Datenbank-Dateistruktur aufzuräumen.

Wenn die Tabelle nicht explizit integer Primärschlüssel (INTEGER PRIMARY KEY) ist, kann VACUUM Befehl, um die Einträge in der Tabelle Zeilen-ID (ROWID) ändern. VACUUM Befehl nur für die primäre Datenbank ist, ist zusätzliche Datenbankdatei nicht möglich, die VACUUM-Befehl.

Wenn eine Transaktion aktiv ist, wird VACUUM Befehl fehl. VACUUM-Befehl ist nichts für eine Speicherdatenbank. Da VACUUM Befehl, um die Datenbank-Dateien von Grund auf neu erstellen, so VACUUM auch verwendet werden, können eine Reihe von datenbankspezifischen Konfigurationsparameter zu ändern.

Manuelle VACUUM

Hier ist die Syntax für die Eingabeaufforderung ausgegeben VACUUM die gesamte Datenbank-Befehle:

$ Sqlite3 database_name "VACUUM";

Sie können auch SQLite prompt VACUUM laufen, wie folgt:

sqlite> VACUUM;

Sie können auch VACUUM auf einer bestimmten Tabelle ausgeführt werden, wie folgt:

sqlite> VACUUM table_name;

Auto VACCUM (Auto-Vakuum)

SQLite die Auto-und Vakuum ist nicht das gleiche, es ist nur eine freie Seite bis zum Ende der Datenbank, wodurch die Größe der Datenbank zu verringern. Dadurch kann, ist es wesentlich, die Datenbank-Fragment, das die anti-VACUUM fragmentiert. Auto-Vakuum, so wird nur die Datenbank zu verkleinern.

In SQLite-Eingabeaufforderung können Sie mit dem folgenden kompilieren und ausführen, aktivieren / deaktivieren Sie die SQLite-Auto-VACUUM:

sqlite> PRAGMA auto_vacuum = NONE; - 0 bedeutet auto Vakuum deaktivieren
sqlite> PRAGMA auto_vacuum = INCREMENTAL; - 1 Mittel ermöglichen inkrementelle Vakuum
2 Mittel ermöglichen vollautomatischen Vakuum -; sqlite> PRAGMA auto_vacuum = FULL

Sie können den folgenden Befehl von einer Eingabeaufforderung ausführen, um die Auto-Vakuum-Einstellungen zu überprüfen:

$ Sqlite3 database_name "PRAGMA auto_vacuum;"