SQLite - VACUUM

Perintah VACUUM membersihkan database utama dengan menyalin isinya ke file database sementara dan memuat ulang file database asli dari salinan. Ini menghilangkan halaman gratis, menyelaraskan data tabel menjadi bersebelahan, dan sebaliknya membersihkan struktur file database.

Perintah VACUUM dapat mengubah ROWID entri dalam tabel yang tidak memiliki INTEGER PRIMARY KEY eksplisit. Perintah VACUUM hanya bekerja pada database utama. Tidak mungkin untuk VACUUM file database terlampir.

Perintah VACUUM akan gagal jika ada transaksi yang aktif. Perintah VACUUM adalah no-op untuk database dalam memori. Saat perintah VACUUM membangun kembali file database dari awal, VACUUM juga dapat digunakan untuk mengubah banyak parameter konfigurasi khusus database.

VAKUM Manual

Berikut ini adalah sintaks sederhana untuk mengeluarkan perintah VACUUM untuk seluruh database dari command prompt -

$sqlite3 database_name "VACUUM;"

Anda dapat menjalankan VACUUM dari prompt SQLite juga sebagai berikut -

sqlite> VACUUM;

Anda juga dapat menjalankan VACUUM pada tabel tertentu sebagai berikut -

sqlite> VACUUM table_name;

VAKSUM Otomatis

SQLite Auto-VACUUM tidak melakukan hal yang sama seperti VACUUM melainkan hanya memindahkan halaman gratis ke akhir database sehingga mengurangi ukuran database. Dengan demikian, VACUUM dapat secara signifikan memecah database sementara VACUUM memastikan defragmentasi. Karenanya, Auto-VACUUM hanya membuat database tetap kecil.

Anda dapat mengaktifkan / menonaktifkan penyedotan otomatis SQLite dengan pragma berikut yang berjalan di prompt SQLite -

sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum
sqlite> PRAGMA auto_vacuum = FULL; -- 1 means enable full auto vacuum
sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 means enable incremental vacuum

Anda dapat menjalankan perintah berikut dari command prompt untuk memeriksa pengaturan vakum otomatis -

$sqlite3 database_name "PRAGMA auto_vacuum;"