SQLite Optimizerを使ってFirefoxを軽くする

places.sqliteのサイズを小さくする方法。Firefoxの挙動が軽くなるか今更ながら試してみた。
去年の夏くらいにいろんなサイトで紹介されていたが、面倒臭いと思って手をつけていなかった。

cutplacebefore.jpg
試したのはWindows 7にアップグレードしたAspire Timeline 3810tで毎日使っているFirefox3.6。
元のサイズは158MB。いろんなサイトで見ると他の人はせいぜい30MB程度のようだが…異常に大きいのはなぜだろう。ブックマーク数は
1500くらいで履歴は最低60日は残すように設定してある。(xpのデスクトップの方は50MBくらいだった。)



あまり関係ない話だが、今回のこれを実行する直前たまたま履歴を見ようと思って、見たら7日以内までしかなくなっていた。以前は今月のフォルダなんかもあり、履歴もちゃんと表示されていたと記憶しているので、おかしいなと思い調べてみた。

about:configの画面から見ると、browser.history_expire_daysの値が5になっており、browser.history_expire_days_minは60になって
いた。この設定は矛盾していると思うのだが、5の値の方に従っていたようだ。いつの時点でこうなったかは分からないが、もしかしたら
3.6にアップデートしたときにbrowser.history_expire_daysの設定ができたか、上書きされたのではないかと思う。



SQLite OptimizerというFirefoxのアドオンをインストール。このアドオンはplaces.sqliteだけでなく他のファイルも同時に最適化できるようだ。

sqlo_install.jpg
vacuum後にreindexを実行するにチェックを入れて、今すぐreindexを実行するをポチッ。

実行を押してから1分とかからず結果のダイアログが表示された。もっと時間がかかると思っていたので、速さには少し驚かされた。
見方は のダウンロードページにあり、
sqlo_done.jpg

手動実行時の記号の意味
一番上の大文字はそれぞれvacuum と reindex を表します。
V(acuum) R(index)

V R
x x cookies.sqlite
% o downloads.sqlite
o o dta_queue.sqlite

x : 実行しようとしたがデータベースがロックされている等の理由で失敗した。
o : 処理が正常終了した
% : (Vの列のみ) vacuum の指定があったがフラグメントが20%以下だったので実行しなかった

とのこと。

cookieのファイルは最適化出来なかったようだ。

cutplaceafter.jpg
実行後のplaces.sqliteのサイズは4.33MB!なんと、実際のデータに必要なファイルサイズはたったこれだけなのか!

twitterfox_1.9.sqliteが大きくなっているのは、使い始めてそれほど時間がたっていないのと、twitterが更新されて行ったためだと思われる。他のファイルは、サイズが小さいのできにもとめていなかったw
ただし、sqliteファイルを小さくしよう試みているサイトでよく見かけた、urlclassifier3.sqliteというファイルは結構大きい(自分のは35MBあ
った)のだが、このリストに入ってはいない。アドオンの紹介のスクリーンショットでは入っているのだが。7だと入っている場所が違うのだろうか?このファイルは危険なURLのリストでgoogleから更新を受け取っているらしい。削除すればまた勝手に作られるそうなので削除しても構わないようだ。



Firefoxを使ってみて、以前と比べてどうかというと確かに軽くなっている。
また、このアドオンの「Firefox終了時に sqliteデータベースの REINDEX を実行する」を選択した場合、Firefox を 10 回終了する毎に最適化を行うそうなので、肥大化の防止を自動化することもできる。

3.6からFirefox自体にもvacuum機能は実装されているらしい。だがreindex機能は入っていないのでこのアドオンを入れる理由は十分あるだろう。
他にも同様のアドオンもあり、CCleanerやSQLite managerといったソフトを使う方法もあるようだ。
ここまでファイルサイズが大きい人はあまりいないのかもしれないが、試す価値はあるだろう。

この記事へのコメント