Firefoxのsqlite DBファイルをvacuum
sqliteにもvacuumあるらしいですね。作り直してコピーするという内容らしいですが、作って消して…と繰り返しているDBはかなり小さくなるという噂。
sqliteは便利です。ほかのプログラムに組み込みやすいし、設定も少ないのにSQLを食えるので、いろんなところで使われています。blogのDBに使っている人もいるし、tracのDBなんかも普通はsqliteですよね。
sqliteはFirefoxにも組み込まれている。そこで、Firefoxのプロファイルディレクトリにあるsqliteファイルをvacuumするスクリプト。
パス名がWindows用です。Linuxで使う場合はbasedirに$HOME/.mozilla/firefoxを入れればよいと思われます。Firefoxを閉じてから実行しないとエラーになります。
#! /usr/bin/python
import os,sys
import sqlite3
import glob
basedir=os.path.join(os.environ["APPDATA"], "Mozilla", "Firefox", "Profiles")
for i in glob.glob(os.path.join(basedir, "*.*", "*.sqlite")):
print i[len(basedir):]
con=sqlite3.connect(i)
c=con.cursor()
c.execute("vacuum")
con.close()
確かに、けっこう小さくなりますね。まあ、Firefoxのファイルに関しては気休め程度です。