poniedziałek, 24 września 2018

SQLite - VACUUM


SQLite - VACUUM

Komenda VACUUM czyści główną bazę danych, kopiując jej zawartość do pliku tymczasowej bazy danych i ponownie wczytując oryginalny plik bazy danych z kopii. Eliminuje to wolne strony, wyrównuje dane tabeli do ciągłości i w inny sposób czyści strukturę plików bazy danych.
Polecenie VACUUM może zmienić ROWID wpisów w tabelach, które nie mają wyraźnego klucza INTEGER PRIMARY. Polecenie VACUUM działa tylko w głównej bazie danych. Nie można odfiltrować dołączonego pliku bazy danych.
Komenda VACUUM zakończy się niepowodzeniem, jeśli jest aktywna transakcja. Polecenie VACUUM to operacja "no-op" dla baz danych w pamięci. Ponieważ polecenie VACUUM odbudowuje plik bazy danych od podstaw, VACUUM może również służyć do modyfikowania wielu parametrów konfiguracyjnych specyficznych dla bazy danych.

Instrukcja VACUUM

Poniżej znajduje się prosta składnia do wydania polecenia VACUUM dla całej bazy danych z wiersza poleceń -
$sqlite3 nazwa_bazy_danych "VACUUM;"
Możesz uruchomić VACUUM także z poziomu zapytania SQLite -
sqlite> VACUUM;
Możesz również uruchomić VACUUM na konkretnej tabeli w następujący sposób:
sqlite> VACUUM table_name;

Auto-VACCUM

SQLite Auto-VACUUM nie działa tak samo jak VACUUM, zamiast tego przenosi tylko wolne strony na koniec bazy danych, zmniejszając w ten sposób rozmiar bazy danych. W ten sposób może znacząco rozdrobnić bazę danych, podczas gdy VACUUM zapewnia defragmentację. Dlatego Auto-VACUUM po prostu utrzymuje małą bazę danych.
Możesz włączyć / wyłączyć automatyczne odkurzanie SQLite przez następujące pragmy działające w wierszu polecenia SQLite -
sqlite> PRAGMA auto_vacuum = NONE; -- 0 oznacza wyłączyć automatyczne vacuum
sqlite> PRAGMA auto_vacuum = FULL; -- 1 oznacza włącz pełne auto vacuum
sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 oznacza włączaj przyrostowo vacuum
Możesz uruchomić następujące polecenie z wiersza poleceń, aby sprawdzić ustawienie automatycznego vacuum -
$sqlite3 nazwa_bazy_danych "PRAGMA auto_vacuum;"



Brak komentarzy:

Prześlij komentarz