2013年1月19日土曜日

sqlite3でfirefoxのプロファイルをvacuum

firefoxのプロファイル、今日調べたら合計で100MB以上になっていました。 デカ過ぎですよね。 省サイズ化の方法があったのを思い出して試してみました。

firefoxのプロファイルは大部分がsqliteのデータベースに格納されています。 sqliteのデータは放っておくとフラグメンテーションが進んで肥大してしまいます。 フラグメンテーションを解消するにはsqliteのvacuumコマンドが有効。 ついでにreindexしておくといいらしい。

というわけでやってみました。 まずはsqliteの公式サイトからsqlite-shellをダウンロード。

Precompiled Binaries for Windowsのところから「sqlite-shell-win32-x86-バージョン.zip」を落とします。 中身は ... sqlite3.exeが1つだけ? へぇ。

とりあえずfirefoxのプロファイルを7zで圧縮してバックアップ。 コマンドプロンプトでプロファイルのフォルダに移動して、大きさが目立つ3つのファイルに対してvacuumとreindexをやってみました。

まずはset pathして、

set path=%path%;c:\sqlite3の解凍フォルダ\

chromeappsstore.sqliteをvacuum&reindex。

sqlite3 chromeappsstore.sqlite vacuum
sqlite3 chromeappsstore.sqlite reindex

サイズは11MBから変化なし。 ハズレですね。

次、places.sqliteは ... 10MB → 1.15MB。

え!? そんなに小さくなるの?

地味にうれしいですね。 最後はwebappsstore.sqliteです。 86.5MB → 96KB。 アレ増えてる...?

キロバイト!? 1000分の1になりました。

プロファイルの合計サイズは100MB以上から30MB以下にまで減りました。 凄くディスクスペースを無駄にしてたんですね。 これからは定期的に整理することにしましょう。