[Senna-dev 92] MySQLバインディングで大量のレコードがヒットするとき

Back to archive index

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



Senna-dev メーリングリストの案内
Back to archive index