SQLite 資料一覧
DBの不要領域を整理する(vacuum)
2008/4/10更新
対応バージョン: 3.5.7
SQLiteではデータを削除しても領域自体は削除されず、ファイルサイズも減らない。
不要な領域を整理(削除)してファイルサイズを減らすにはvacuumコマンドを使用する。
これによりアプリケーションによってはパフォーマンスが向上する場合もある。
例) 10万レコードを挿入し、すべて削除、その後vacuumを行う
テーブル作成
% sqlite3 sample.db "create table test(data text);"
データ挿入
% echo | awk '{for(i = 1; i <= 100000; i++) \ printf("sqlite3 sample.db \"insert into test values(%d);\"\n", i)}' | sh % ls -l sample.db -rw-r--r-- ... 1454080 ... sample.db
全レコード削除
% sqlite3 sample.db "delete from test;" % ls -l sample.db -rw-r--r-- ... 1454080 ... sample.db ← サイズ変わらず
vacuum
% sqlite3 sample.db vacuum % ls -l sample.db -rw-r--r-- ... 2048 ... sample.db ← サイズ減少