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のファイルに関しては気休め程度です。