SQLiteでレコードを削除してもファイルサイズが小さくならない場合の対処

SQLiteでレコードを削除(DELETE)してもファイルサイズは変わりません。
これは、削除したエリアをそのままにして再活用するためです。
従って、開いた(削除した)領域を開放するには、VACUUMというコマンドにより領域の開放を行わないといけません。
以下に例を記しながら説明します。 尚、操作はUbuntuで行いました。


スポンサーリンク

関連記事

使用するデータベースファイルおよびデータ内容

使用するデータベースとデータ内容は以下の通りです。

実際にレコード削除してみる

VACUUMコマンドを実行しファイルサイズを確認する

vacuum;コマンドを実行したあとの結果です。
ファイルサイズが小さくなっているのが確認できます。
つまり空きエリアを開放したのが確認できました。

sakura@ubuntu:~$ sqlite3 testdb.sqlite3
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> vacuum;
sqlite> .q
sakura@ubuntu:~$ ls -l
合計 4
-rw-r--r-- 1 sakura sakura 2048  2月  7 10:50 testdb.sqlite3

以上、SQLiteで削除してもファイルサイズが小さくならない場合の対処方法でした。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 12:53:39