Firefox3のSQLiteをreindex(とvacuum)をしてみたよ

firefox 3が遅くなった→ SQLite reindexで解決&高速化 - しおそると」や「Firefox 3:placesをVACUUMして劇的に起動が速くなる場合もあるそうです: べつになんでもないこと」を拝見してFirefoxSQLiteファイルをreindex(と以前やったvacuum)を行ってみました。

2009-02-12 Ubuntu 8.04 (Linux)上での結果を追記

先に結果を書いておくと、私の環境では体感速度は変わりませんでした。
※2009-02-17 体感ではなく計測してみました。「FirefoxのSQLiteの圧縮後の速度を、体感じゃなく計測してみたよ。」

環境

  • Windows XP SP3
  • Firefox3.0.5
  • SQLite 3.6.7 (Precompiled Binaries For Windows) A command-line program for accessing and modifing SQLite databases. をダウンロードして、解凍してsqlite3.exeを適当なフォルダに設置。同じフォルダにFirefoxsqliteファイルをコピー

手順

  1. Firefoxを完全に終了させる。タスクマネージャーなどで確認。
  2. Firefoxsqliteファイルをバックアップしておく
  3. sqlite3.exeと同じ場所にFirefoxsqliteファイルをコピー
  4. reindexを実行。コマンドプロンプトから「>sqlite3.exe places.sqlite reindex」を入力。これを各sqliteファイルに対して実行
  5. ついでにvacuumも実行。コマンドプロンプトから「>sqlite3.exe places.sqlite vacuum」を入力。これを各sqliteファイルに対して実行

結果

vacuumの結果、ファイルサイズは以下のように小さくなりました。

  • formhistory.sqlite サイズ 1,043KB→1,040KB -0.3%縮小
  • places.sqlite サイズ 18,760KB→16,600KB -11.5%縮小
  • urlclassifier3.sqlite 41,436KB→33,832KB -18.4%縮小


以上です。参考までに。

2009-02-12 追記 Ubuntu 8.04 TLS (Linux)での"SQLite database browser"による"Compact Database"の実行結果

  • OS: Ubuntu 8.04 TLS
  • Firefox 3.0.6
  • Tool: SQLite database browser (Ubuntuの「アプリケーションの追加と削除」からインストール)のメニューからFile→Compact Databaseを実行

Firefox同士のブックマーク・履歴などはFoxmarks/Weaveで同期しているにもかかわらず、Windows上での実行結果と大きく異なりました。

  • places.sqlite 20.9MB→1.7MB
  • urlclassifier3.sqlite 51.1MB→14.6MB

原因はツールの違い??? 原因はツールの違いではなく、Firefoxの環境(履歴など?)の違いのようです。*1

これ位サイズが違ってくると、Dropboxなどで共有していると同期の速さが違ってきそうです。


参考

firefox 3が遅くなった→ SQLite reindexで解決&高速化 - しおそると
http://www.sio.no-ip.com/mt/shio/archives/2008/10/firefox-3-sqlit.html

Firefox 3:placesをVACUUMして劇的に起動が速くなる場合もあるそうです: べつになんでもないこと
http://puppet.asablo.jp/blog/2009/01/05/4043644

Firefox3でのsqliteファイルをvacuumで整理・最適化してみたよ - 雑木林とコンピュータのメモ帳
http://d.hatena.ne.jp/dolphinkick/20080914/p1

*1:Ubuntu上からWindowsNTFS領域をmountして、Ubuntuの"SQLite database browser"でWindows上のFirefoxSQLiteにCompact Databaseを実行したのですが、Windows上でreindex, vacuumを実行したときと結果に変わりがなかったため。