Firefox 3を使っていて、起動が異様に遅くなっていて困っていました。
今回、どうやら解決した模様なので備忘録までに記載します。
Firefox 3にバージョンアップしてから、メインで利用しているPCで Firefox の起動が遅くて仕方がない、ipv6検索を無効にするとか試してみたけどもかわず、という状態でした。
だいたい同じAdd-onを 他のPCにも入れて利用していますが、そちらははそう遅くはないので、プロファイル系かあ、までは切り分けしてそのまま利用しておりました。
プロファイル再作成、面倒ですしね。
で、ふと思い立って Firefox 3 で利用している、SQLite データ群をかたっぱしから Reindex したら、
昔のスピードが再現しました。はやい!
改善:2つ
1)起動が速くなった(起動に1-2分かかる→すぐ起動。劇的に改善。)
2)サイト表示もはやい。 cookies などの処理がはやくなったため?
やりかた:
1)Firefox のプロファイルディレクトリを確認&バックアップ
不明なときは、Firfoxまとめサイトなどで確認して下さい。
2)SQLite Manager エクステンションを入手。
https://addons.mozilla.org/ja/firefox/addon/5817
3)Firefox起動→SQLite Manager起動
「ツール」→「SQLite Manager」
4)SQLite Manager で Firefox のプロファイルディレクトリ以下の places.sqlite ファイルを開く
「Database」→「Connect Database」でファイル選択。
5)SQLite Manager 左画面の Tables ツリーを開く
これがテーブル一覧。
テーブル一覧からテーブルを1つ選択→右クリック→「Reindex Table」選択
→「SQLite Manager : Confirm the operation」で「OK」ボタン
![]()
6)次のテーブルを選択して、5)を繰り返す。
どれがとか考えるのは面倒なので、テーブル全部。
7) データベースを閉じる。
「Database」→「Close Database」
8) cookies.sqlite ファイルで 4)~7)を繰り返す
9)他にもサイズの大きな xx.sqlite ファイルがあればそれでも同じ事を繰り返す
goo Dictionary エクステンションを入れてれば、goodictionary.sqlite とか。
追記:便利ツールが公開されています。
Firerox の SQLite reindex を自動で行ってくれる SQLite Optimizer をご覧下さい。
知らない人の間で改善が連鎖してゆく感じが楽しいです。
あ、連鎖かどうかはわからないか。。
続き:
修正:cookiesにはデフォルトでindexはありませんでした。
ですのでcookies.sqliteでのreindexは不要と思われます。
私は高速化?の可能性を考えてcookiesのhost にindex作成しています。
前後の効果は不明ですが。。



cookies.sqliteにindex作成しても意味ないよ
だってプライマリキーがあるし
anomymousさんへ
コメントありがとうございます。
そうですねえ、意図としてはcookiesを使うときはhostsを元に検索するよう実装していると思うのでhostにindexを作成してみたのですが、実際の効果があるかどうかはわかりません。
ちなみにcookiesのプライマリキーはidへ作成されているし、キーは重複を避けるためのもので検索の高速化になるものでもないと思います。
もしかしたらですが、ライブブックマークをたくさんしていませんか?
Firefox3はRSSをブックマークすればするほど起動が遅くなる致命的なバグがあります
もしそれが原因だったら下記で解決できるので参考ください
http://marilab.hp.infoseek.co.jp/firefox/bug329534.html
http://mozilla-remix.seesaa.net/article/118793069.html
SQLite Optimizerアドオンを使うとボタン一発や終了時に自動で最適化できますよ
下準備が面倒ですが、もう少し楽して最適化できます。
http://sasasin.net/diary/?date=20090512#p01
firefox のソース(netwerk/cookie/src/nsCookieService.cpp)を軽く追ってみましたが,
cookies.sqlite (TABLE moz_cookies) は,
起動時に SELECT で全部ガッと読み込んでいるようです
(メモリ上のハッシュテーブルに格納して,その後そのテーブルを利用する)
なので host フィールドに index を貼るのは,現在の Firefox のインプリメントでは効果がなさそうです。
はじめまして、とにかく1)~8)までを試してみました。
早くなりまして嬉しく思います。
定期的に実行しなければいけないのかが?なのですが...
めちゃくちゃ早くなりました。助かります。
0.1秒の積み重ねが、大きな非効率を産むと・・。
ありがとうございます。
kinaさんへ
コメントありがとうございます。
はやくなって何よりです。昔から利用している環境ならばずいぶん改善すると思ってます。
#スパム対策を厳しくしすぎて、コメント/トラックバックが保留で溜まってました。すみません。
ポンポンさん:
ふもふもさん情報の、「SQLite Optimizer」を試してみて下さい!
dayflowerさん:
ソースまで読んで確認いただいてありがとうございます。
そうですか、一括で読んでますか。。なんでDB使っているのだろう。
ふもふもさん:
ありがとうございます。早速ブログに記載しておきました。SQLite Optimizer、いいですね。
かなこさん:
ありがとうございます。
ライブマークは利用してないのですが、一応試してみます。
sasasin さん
ありがとうございます。
Linux環境では便利そうですね。(Windowsだとどちらが楽かはちょっと。。)
こんな面倒な事しないと駄目なのね きつね