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