バックエンドを MySQL にしてみる(後編)

前に前編を書いてからかなり時間がたってしまったが、ようやく動かすことができたので報告。あれこれ悩んでいたのだが、非常に単純な変更だけで動くようになった。

  • どうすれば動いたのか

MySQL をバックエンドのデータベースとして使用する では、popfile.cfg のデータベース接続の設定を

bayes_dbconnect dbi:mysql:database=popfile;host=localhost

とするように指示しているが、私の環境(Mac OS X 10.3.6、MySQL 4.0.21、DBD::mysql 2.9004)では、

bayes_dbconnect dbi:mysql:popfile;host=localhost

とすることによって動くようになった。要は、「database=」の部分を削除しただけだ。これは、MySQLのインストール/動作確認手順 で書かれていたテスト用のスクリプトでの方法をまねしてみたもの。ここを変更しただけで、山のように出ていたエラーがすべて解消され、問題なく動くようになった。

  • 動作速度は?

気になるのは動作速度だが、今のところ特に体感はできていない。ということは、(速くなったにしろ、遅くなったにしろ)大きな違いはなさそうだということか。変更してからまだあまりメールを受信していないので、なにか気づいたことがあればそのときにまた。

  • 注意事項については?

ドキュメントの「MySQLPOPFile に関する重要な項目」に書かれているように、一部の操作においてごみデータが残ってしまう場合があるので注意する必要があるようだ。とはいえ、バケツの削除は滅多にしないだろうからあまり関係ないのかもしれないけど。もうひとつ書かれているマグネットについては、popfile.sql を見た限りでは、マグネットタイプ(Subject とか To とか)が削除されたときにそのタイプに該当するマグネットを削除するトリガーが設定されているだけだから、これも気にしなくていいだろう(popfile.sql にも、「this shold be a very rare thing」と書かれているし)。他に、(将来マルチユーザをサポートしたときに使われるのであろう)ユーザが削除されたときのトリガーや、テンプレートが削除されたときのトリガーなどが設定されているが、どれもたいして気にすることはなさそうな感じだ。