firefox の各種db整理 (sqlite 最適化)

firefoxは履歴やフォームなどの管理にsqlite3を使っています(safari4も)
これが長年使っているとかなり大きくなります(特にplaces.sqliteが)、そこで移行ついでに肥大化したdbを中味をすっきりさせる事で以下のようにやってみました。
sqlite の vacuum を使います。

実際には

まずはsqlite3を使えるようにインストール

sudo apt-get install sqlite3

プロファイルにあるdbまでたどりついて、

cd ~/.mozilla/firefox/数字の羅列.std

バックアップを取った上で以下のように。


面倒なので zsh なら以下のようにすれば一発でまとめて出来ます。

for i in *.sqlite; do sqlite3 "$i" vacuum; done
for i in *.sqlite; do sqlite3 "$i" reindex; done

もし一つのファイル毎にやるならこのように。

sqlite3 ファイル名 vacuum

結果

% ls -al *.sqlite

変更前 変更後 ファイル名
7168 content-prefs.sqlite
43008 2048 cookies.sqlite
8192 2048 downloads.sqlite
6144 firegestures.sqlite
329728 4096 formhistory.sqlite
15360 goodictionary.sqlite
2048 permissions.sqlite
7766016 729088 places.sqlite
10240 scribefire.sqlite
6144 search.sqlite
24576 signons.sqlite
150528 142336 ubiquity_ann.sqlite
2048 ubiquity_skin_memory.sqlite
2809856 2838528 urlclassifier3.sqlite
3072 webappsstore.sqlite


places などは大分ファイルが小さくなりました。
気になる速さは、気もするけど気のせいかもぐらい。まあすっきりしたという事で。