SQLiteのデフラグ

SQLiteのデータベースファイルのデフラグの手順です。
データベースはデータを削除しても、容量は減らず蓄積されていきます。
そのため、定期的に空き容量を整理する必要があります。

作業手順

どの程度ファイルが小さくなるのか確認するため、作業前に実行前のファイルサイズを確認しておきます。

$ ls -l
total 13788 -rw-rw-rw- 1 xxxx  xxxx  14102528 Aug 21 15:57 database.sqlite

デフラグを実行するためにはSQLiteにログインする必要があります。

$ sqlite3 database.sqlite

デフラグを行います。

sqlite> vacuum;

次にインデックスの再作成を行います。

sqlite> reindex;

SQLiteを終了します。

sqlite> .exit

SQLiteファイルの容量を確認します。

$ ls -l
-rw-rw-rw- 1 xxxx  xxxx  14069760 Aug 21 16:01 database.sqlite

約32KB程程度サイズが小さくなりました。