MySQLにおけるfulltext index

以前書いた、「mysql+sennaにおいて、sennaのインデックスと他のインデックスを組み合わせてクエリーを実行」というのを一部実現しました。(やたら時間が開いてしまいました。。 )

sennaのrev75に
bindings/mysql/mysql-2ind.diff
という小さなパッチをつけています。

これは、MySQL全文検索したときに、sennaの処理はサクッと終わっても
その後MySQLのロジック上、MYDファイルをえんえんとスキャンしてしまう
類のクエリーを高速化するためのものです。

  • count(*)で件数を取得して、全ヒット数を表示したい
  • limitでページャ対応したい
  • 他のカラムでソートしたい(日付順とか)
  • 他のカラムで絞り込みたい(特定のユーザのレコードだけ検索したい)

などなど、実用的なwebアプリで頻繁に使われると思われるクエリー
がこのパッチを使うと見違えるように速くなります。

詳しくは以下を参照してください。
http://lists.sourceforge.jp/mailman/archives/senna-dev/2006-January/000187.html