morit****@razil*****
morit****@razil*****
2005年 6月 23日 (木) 23:44:46 JST
MySQL + senna で全文検索して大量のレコードがヒットすると、 検索応答が遅くなることがありますが、これは、 MySQL側でヒットした全てのレコードの値をMYDから読み込んでいるために、 ディスクI/Oがネックとなっている場合が多いです。 これを回避するためには、select文に limit 条件をつけて取得する件数に 上限をつけてやるのが有効です。 ただしこの方法は、 1) 全体での検索ヒット数が分からない。 2) order by, group by, 他テーブルとのjoin, 等と組み合わせると、 結局ヒットした全レコードの値を読みにいってしまう。 といった問題点があります。 1)については、senna側では件数は分かっているので、 なんとかMySQL越しに引き渡す方法がないかなぁと思っているのですが、 なかなか良い手段が思い付きません。 -- morita