[Senna-dev 501] Re: Senna0.9.0

Back to archive index

Tasuku SUENAGA a****@razil*****
2007年 3月 2日 (金) 00:32:52 JST


末永です。

>  |検索結果が少なそうな場合には、
>  |FORCE INDEXを外してあげれば高速になると考えます。
> 
> 確かにforce indexを外すことで改善されました!
よかったよかった。

>  |本来は、2indパッチ側で
>  |・検索件数が少なければ2ind無効
>  |・検索件数が多ければ2ind有効
> 多いか少ないかはクエリを発行してみないと分からないので
> アプリ側での判断がつかないのが悩ましいところです。
> (先にcount()を取ればいいのでしょうか。。)
2indパッチ内部でcount()は取れるので、
やはり2indパッチ側で頑張るのがよいと思いますね…

現在2indパッチが遅いことへの対策としては、
・count()のクエリを事前に発行して、その結果によって
 FORCE INDEXを切り替える
・MyISAMのインデックス(KEY)がメモリに載るように工夫する
といったことが考えられます。

インデックスがメモリに載っていれば、
2indパッチが有効の場合の動作で説明した
2.〜4.のループの処理がメモリ上だけで行えるため、
検索結果が少ない場合でのパフォーマンス劣化が減ると考えられます。

ということで、物理メモリを増設して、
MySQLのMyISAM KEY buffer size(記憶があまり定かでないですが)を
大きめに設定すると、実用的な速度が出せるようになるのではないか、
と期待しています。

具体的には、
SELECT num FROM test ORDER BY num;
というクエリが高速に実行できるように
MySQLのチューニングを行うとよいと思います。

> ともあれ2indパッチの使用にはトレードオフがあることは
> 理解できました。ありがとうございます
いえいえー。質問どしどし募集しています!

>  |将来的には、
>  |Senna本体で属性情報を持ち、
>  |それに基づいた絞込やソート機能を実装することにより
>  |問題を解決したいと考えております。
> 
> 気長に期待致しております。
気長かつ迅速に実装できるようにがんばります!!!!

Senna本体は高速に結果を返しているのに、
それ以外の要素で律速されている状況は
われわれも早く解決できるようになりたいな、と考えています。

---
Tasuku SUENAGA <a****@razil*****>



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