SSブログ

Firefox の sqlite の最適化 [Firefox]

またまた放置してしまいましたが、ぼちぼち生きてます。

2013-02-13頃、書きました。

□ 1. 概要

Firefox が使用する *.sqlite データベースファイルを最適化する手順のメモ。

最近、Firefox の重さに我慢できなくなった。
原因のひとつが SQLiteデータベースにあり、それを最適化すると、改善する場合がある(らしい)。
そして、最適化とは vacuum して reindex する事らしい。(←嘘かもしれません)

それが目的のアドオン、SQLite Optimizer :: Add-ons for Firefox があるのだが、Firefox 17.0/18.0 あたりは未対応のよう。(2013-01-23時点)
このアドオンを展開して、どこかを書き換えれば動くかもしれないけど、今回は別の方法が見つかったので、そっちで。

2013-01-19 片鱗懐古のブログ: sqlite3でfirefoxのプロファイルをvacuum
なるほど、コマンドライン(?)からやれば良いわけですね。ありがとうございます>片鱗懐古のブログさん

この方法での最適化を Linux と Windows でやってみたのでメモしておく。

□ 2. バージョンなどメモ

Linux


- OS: CentOS 5.9
- Firefox: 17.0 i686
- SQLite3: 3.3.6
- Date: 2013-01-23

Windows


- OS: Windows XP pro.
- Firefox: 18.0.2
- SQLite3: 3.7.15.2 (?)
- Date: 2013-02-13

□ 3. SQLite3 の入手

Linux

インストール済みだったので何もしていない。
$ rpm -q sqlite
sqlite-3.3.6-6


Windows

SQLite Download Page から、"sqlite-shell-win32-x86-3071502.zip (266.31 KiB)" をダウンロード。
中身は sqlite3.exe がひとつ入っているだけ。今回は Firefox のプロファイルフォルダに置いた。(これにしか使わないから)

□ 4. 最適化するデータベースファイル

データベースファイルは、プロファイルフォルダにあるみたい。

- プロファイル | Firefox ヘルプ

Linux

ls -l *.sqlite の結果
 -rw-r--r-- 1 myname myname   589824  1月 23 08:34 addons.sqlite
 -rw-r--r-- 1 myname myname   262144  1月 22 08:26 chromeappsstore.sqlite
 -rw-r--r-- 1 myname myname   229376  1月 21 08:43 content-prefs.sqlite
 -rw-r--r-- 1 myname myname   524288 12月 12 17:20 cookies.sqlite
 -rw-r--r-- 1 myname myname    65536  1月 23 08:30 downloads.sqlite
 -rw-r--r-- 1 myname myname   163840  1月 23 08:38 evernote_webclipper.sqlite
 -rw-r--r-- 1 myname myname   524288  1月 23 08:38 extensions.sqlite
 -rw-r--r-- 1 myname myname   851968  1月 23 08:49 formhistory.sqlite
 -rw-r--r-- 1 myname myname   163840  1月 23 08:51 permissions.sqlite
 -rw-r--r-- 1 myname myname 10485760  1月 23 08:49 places.sqlite
 -rw-r--r-- 1 myname myname    65536  8月 27 17:36 search.sqlite
 -rw-r--r-- 1 myname myname   327680  9月  6 10:27 signons.sqlite
 -rw-r--r-- 1 myname myname 57671680 11月 21 10:23 urlclassifier3.sqlite
 -rw-r--r-- 1 myname myname    98304 11月 29  2011 webappsstore.sqlite


Windows

dir *.sqlite の結果
 2013/02/13  09:35           589,824 addons.sqlite
 2013/01/17  08:23           262,144 chromeappsstore.sqlite
 2012/12/12  10:38           229,376 content-prefs.sqlite
 2013/01/21  13:00           524,288 cookies.sqlite
 2013/02/04  10:47            65,536 downloads.sqlite
 2013/02/12  08:31            98,304 evernote_webclipper.sqlite
 2013/02/12  08:31           524,288 extensions.sqlite
 2013/02/13  08:50         4,751,360 formhistory.sqlite
 2013/02/13  09:43            65,536 permissions.sqlite
 2013/02/13  09:43        10,485,760 places.sqlite
 2012/06/22  08:30            65,536 search.sqlite
 2012/09/06  10:17           327,680 signons.sqlite
 2012/11/20  11:05            98,304 webappsstore.sqlite


□ 5. スクリプトを書いた

Firefox のプロファイルフォルダに、ごく簡単なスクリプトを作った。
- どちらもバックアップファイルを作って、最適化する。
- バックアップファイルがある場合はやらない。
- sqlite3 の使い方が、よくわからないので違っているかも。

Linux

Shell Script で。
 $ cat optimize_sqlite.sh
 #!/bin/sh
 while [ "x$1" != "x" ]
 do
         database=$1
         backupfile=$database.backup
         if [ ! -e $backupfile ]
         then
                 cp -p $database $backupfile
                 sqlite3 $database "vacuum;reindex;"
         fi
         shift
 done


Windows

Windows のバッチファイルは、繰り返し処理とか、条件分岐とか・・・独特かつプアで困る。
MS-DOS時代からあまり変わってない。MSさん的には「GUIを使ってね」と、あえてやってないだけだと思けど・・・。
Cygwin を入れたくなるが、それをこらえて 2つのバッチファイルを作った。

for文の引数に複数のコマンドを書く方法もあるらしいけどが、その中で条件分岐ってどうやるのかわからない。
出来たとしても、きっとわけわからん事になるので、2つに分けた。
もっと良いやりかたがありそうだけど・・・。

- optimize_sqlite.bat
 @echo off
 for %%d in (%1) do cmd/c "optimize_sqlite_exec.bat %%d"


- optimize_sqlite_exec.bat
 @echo off
 if "x%1" == "x" goto label_noargs
 
 set database=%1
 set backupfile=%database%.backup
 
 if exist %backupfile% goto label_backup_exist
 
 copy /b /v %database% %backupfile%
 sqlite3 %database% "vacuum;reindex;"
 goto label_exit
 
 :label_noargs
 echo usage: optimize_sqlite_exec sqlite-databse-file
 goto label_exit
 
 :label_backup_exist
 echo %backupfile% is found, ignored
 goto label_exit
 
 :label_exit


□ 6. 最適化してみる

Firefox がデータベースファイルをオープンしているかもしれないので、Firefox を終了して実行。

Linux

 $ sh optimize_sqlite.sh *.sqlite


Windows

 C:\(省略)> optimize_sqlite *.sqlite


□ 7. 結果

リンクをクリックしてページのロードが開始されるまでが、早くなったような気がする。

Linux

サイズが変わったのは以下の4つ。あとは変わらなかった。
places.sqlite が、変わってないのは、Vacuum Places Improved :: Add-ons for Firefox で、お掃除していたからだと思う。

- chromeappsstore.sqlite : 262144 => 98304
- formhistory.sqlite : 851968 => 720896
- permissions.sqlite : 163840 => 131072
- urlclassifier3.sqlite : 57671680 => 43843584

Windows

- chromeappsstore.sqlite: 262144 => 98304
- cookies.sqlite: 524288 => 131072
- formhistory.sqlite: 4751360 => 4816896 (ちょっと増えた?)
- places.sqlite: 10485760 => 4325376

おわり
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

野田総理はうそつきデブか [よた日記]

しばらく放置してしまいましたが、いつものように戯言を書きます。

■ 野田総理は うそつきデブ か?

2012-11-14 17:15 野田首相、自民党が定数削減確約なら16日に解散と表明 - WSJ日本版 - jp.WSJ.com

野田総理が条件付きで解散と言い出したのは「うそつきデブ」とヤジられたから?とか、違うとか。
うそつきもデブもまぎれもない事実ですが、あの面の皮の厚い野田さんがちょっとヤジられたくらいで切れるのでしょうか?

ぼくが野田さんは駄目だと確信したのは、冷温停止宣言の時だったと思います。
核燃料が残っているかもわからないぶっ壊れた原子炉に対して、しれっと事故収束宣言。
人は嘘を言う時には多少の後ろめたさ 、があると思うのですが、この人にはそれが感じられない。
その後の消費税その他諸々・・・呆れるを通り越しました。

2012-11-15 最後は身内の根回しもできず、自・公を頼る屈辱的な幕引きだった:兵頭正俊 | 晴耕雨読

> 幹部だけ生き残り、選挙後は自・公に拾ってもらって、連立政権で大臣のポストを得る算段だ。
> ぜひとも幹部を落選させなければならない。

そう思うのだけど、選挙区で落ちても比例で復活とか、ありそうで想像しただけで腹が立ちます。
小選挙区比例代表併用制、でしたっけ?
よくわからないけど、何かがおかしい。
少なくとも重複登録は止めて欲しい。


■ 小沢潰し?

国民の生活が第一に政党交付金を渡さない為、という噂がありますね。
これかなー、と思ってます。
大手マスコミは、小沢さんの悪い所だけ報道しようと、世論操作に余念が無いようですし。
ここまで小沢にネガティブだと色々勘ぐりたくなります。


■ 政党交付金を廃止して欲しい

政治家でない自分にはどうしてそんな金が必要なのか、もらえるのか、さっぱり理解できないです。
政治には金がかかる、と言いますけど、金が無いなら無いなりにやるのが普通の考えでしょう。
金がかかるのではなく、金をかけているのではないでしょうか。
政治家の考えは、来年度の予算を取るために本年度の予算を使いきらなければならない「掘って埋めろー」と考える役人と大差ないように思います。


■ 天に唾を吐く

某自民党の総裁とか、娘が東電の某幹事長とかは、小沢は無罪だが無実じゃないとか、黒ではないがグレーだ、とか言っているとか?
どの口でそんなことを言えるのでしょう?
おまえが言うな、というツッコミを期待しているんでしょうか?


■ (野田総理の)近いうちは約106日と判明

野田総理が「近いうちに信を問う」と発言したのは 2012-08-08 らしいです。

2012-08-10 19:47 延命を狙う野田首相 - Japan Real Time - jp.WSJ.com

> 野田首相は8日夜(省略)衆院の解散時期について法案成立後「近いうちに国民に信を問う」との言葉で谷垣氏に合意をのませた。

この件では、野田の「行けたら行きます」「前向きに検討します」的発言で引いてしまった谷垣総裁(当時)の方が(政治家としては)ちょっと素直すぎましたね。
もしかすると誰かが書いた筋書きがあって、民主も自民も、野田も谷垣も単なる役者、国会は三文芝居なのかもしれないと思いました。

で、引き算すると 106日間位 ≒ 3.5か月位になりました。本当にどうでもいいですね。


■ 自公民、石原、橋下以外ならなんでもいい

2012-11-15 12:30 野田首相が突然「16日解散」を明言……国民不在の選挙は「暗中模索選挙」だ - ガジェット通信

ここに書いてある事が多くの人が感じている事ではないでしょうか。
これを虚構新聞にすると、こうなるらしいです。

2012-11-15 ネット新党「白票」、今日にも立ち上げ 400議席超も視野


■ 政治家は投票率を下げたい、上げたくないらしい

投票率が下がれば、いわゆる組織の力が強くなりますから、バックがある政党にとって有利、今回に限りませんが。
そういう偽者の政治家は、政治不信になるほど喜ぶのはずです。
このままクソジジイ共や官僚に国を牛耳られて良いわけがありません。
次の選挙は普段投票しない人達(たぶん若い人)に投票に行ってもらいたいと思います。

おわり。

nice!(2)  コメント(4)  トラックバック(0) 
共通テーマ:日記・雑感

海外ミュージシャンの訃報2件 [よた日記]

■ 【訃報】ジョン・ロード

2012-07-17 ロックのジョン・ロード氏死去 D・パープルで一時代 - 47NEWS(よんななニュース)

> ジョン・ロード氏が16日、肺のそく栓症のためロンドンの病院で死去、71歳

残念です。
パープルは、詳しくないですが、若い頃よく聴きました。


■ 【訃報】ボブ・ウェルチ

2012-06-08 米歌手ウェルチ氏が自殺 元フリートウッド・マック - 47NEWS(よんななニュース)

> 歌手でギタリストのボブ・ウェルチさん(66)が7日、テネシー州ナッシュビルの自宅で死んでいるのを妻が見つけた
> 銃で胸を撃って自殺したとみている

「フリートウッド・マック」も「パリス」も聴いたことないのですが、ソロ時代のアルバムを何枚か持ってます。
亡くなった方に失礼ですが、歌もギターも上手くないけど、何故か好きなのです。
今でもたまに聴きます。

(2012-07-20 頃書きました)
nice!(5)  コメント(2)  トラックバック(0) 
共通テーマ:日記・雑感

BlockSite Plus [Firefox]

□ 概要

Firefox のアドオン、BlockSite Plus を入れてみたお話し。
( Linux 版13.0 がメイン、 Windows版14.0.1 でちょっとだけ検証 )

□ Google検索のブロック機能を補完する(したい)

以前書いた通り、Google検索のブロック機能を使わせてもらっているのだが、若干不満が残る。
( → Googleのブロックしたサイトの管理への要望 )

例えば、次のような問題が起こる。
- 『http://blog.livedoor.jp/dqnplus/ 痛いニュース(ノ∀`)』をブロックするように登録。すると、
- 『http://blog.livedoor.jp/dqnplusminus/ 痛いニュース(ヽ´ω`)』もブロックされてしまう。

これは、パス名(ディレクトリ名)以下は指定できず(無視され)、ホスト単位でブロックされる為だろう。
「サイトのブロック管理」機能であるから、言葉的にはそれで正しいのかもしれないけど。

□ BlockSite Plus のインストール

このアドオンを使うと、ハイパーリンクが削除され、クリックしても飛ばなくなるらしい。

- BlockSite Plus :: Add-ons for Firefox

2012-08-08時点で、レビューは6件しかなく、相反する事が書かれてる。
- "Waist of Space" (たぶん Waste of Space の間違い)
- "Doesn't work"
- "exactly what I needed"
- "I love it"

□ BlockSite Plus を使ってみる

# Windows版14.0.1のアドオンマネージャでは、なぜか見つからず。インストールは出来た。

- インストールする(firefoxを再起動しなくて良いらしい)
- 設定画面を開いて、Blacklist に追加

ためしに http://blog.livedoor.jp/dqnplus/ を追加して "痛いニュース" を検索してみる。
もちろん、Google検索から除外する事は出来ないわけだが、
ハイパーリンクが削除され、ただのテキストになる事が確認できた。
これなら一目で「自分が見たくないサイト」であることがわかる。

「痛いニュース(ヽ´ω`)」の方は・・・・結果に表れないのでわからない(^^
"痛いニュース(ヽ´ω`)" で検索してみると、ちゃんとリンクは残っており、大丈夫。
素晴らしい、"exactly what I needed" です。

□ Google検索ブロック済サイトを追加

さらに Googleの検索結果以外のあらゆるページで効くのが良いところ(きっと)。
既にGoogle検索でブロック登録しているサイトも追加しよう。
「Import」というボタンがあるのでインポート出来るはず。

手順。
ブロックしたサイトの管理 で、
『テキスト ファイルとしてダウンロード 』をクリックし、blocked_sites.txt を保存。
ちなみに 2012-08-07現在、 279件ブロックしている。
$ wc -l blocked_sites.txt
279 blocked_sites.txt

この blocked_sites.txt は、ホスト名が並んでいるだけ。
一方、BlockSite Plus の方は、ちゃんと http://hamusoku.com/ のようなURLを指定するようだ。
また、新しく登録した順に並んでいるようなので、ソートする。
さらに先頭行に [BlockSite] が必要らしい。
まとめると、こんな感じ。

$ ( echo [BlockSite] ; sort blocked_sites.txt | sed -e 's/^/http:\/\//' -e 's/$/\//' ) > block_urls.txt

# Windows だとどうするのでしょう? テキストエディタによっては、検索置き換えで、出来るかも?

Import で block_urls.txt を指定して、開く> Append > OK

やり過ぎた。自分のはてぶも表示しなくなってしまった。
その場合は、そのサイトをブラックリストから削除すれはオーケー(だと思います)。

□ Google八分出来ないサイトを追加

あとは、http://blog.livedoor.jp/dqnplus/ のようなサイトを登録してゆけば、オーケーのはず。
これは「ある程度のリスト」を作ってあるので、別のエントリに書くかも。

■ 感想

- ハイパーリンクが削除されるので、
-- 検索結果のページでは、、アクセスしたくないサイトであることが一目でわかる。
-- そうでないページでは、作者がリンクしなかったのか、アドオンが削除したのか、よくわからない。
-- なにか「削除した事を示すマーカー」でもあれば、より良いのかな?

- ディレクトリ名(パス名)の部分も評価してくれるので、
-- Google検索で除外できないサイトにも使える
-- 文句なし

- ブックマーク、リダイレクト、URLを直接入力などでも効くようなので (未確認)
-- 間違ってもアクセスできなくなる。
-- 文句なし

- 登録作業画面、アドオンマネージャからしか行けない?
-- 一度、登録してしまえばあまり触らないから、それでいいのかも。

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

ニアリーイコール [よた日記]

「≒」とIMEの話です。

ローマ字カナ変換です。
なんと入れれば出てくるのでしょう?
あぁ、Windows 7 のデフォルトのIMEです。

今回は、「きごう」って入れて、すごく沢山出るリストから探して・・・・
と思ったら、学習機能のおかげ、「きごう」で上位にリストされますが、
本当はなんと読むのでしょう?

Linux の anthy には、「にあ」で登録しております。
だって「にありーいこーる」じゃ、長すぎるじゃありませんか。

「∴」は「ゆえに」で出るんですよ。
学者でも学生でもないので、まず使いませんけどね。

あぁ、「やく」で、出るみたい。
「≒」と「約」では、ちょっと意味が違うような気がするけど、気のせいでしょう。

nice!(2)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感
ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。