Kouhei Sutou
kou****@clear*****
2013年 5月 1日 (水) 10:15:37 JST
須藤です。 In <38899****@web10*****> "[groonga-dev,01352] Re: utf8_unicode_ci使用時の検索結果について" on Wed, 1 May 2013 07:14:27 +0900 (JST), <mail_babir****@yahoo*****> wrote: > 検索条件によらずMyISAMと同等以上の速度が出れば、導入メリットをより強調できると思います。 なるほど。 どうすればよいかも考えたのですが、ORDER BYなしでLIMITを指定 するのがよくあるケースなのかも考えてみました。全文検索をする 場合はスコアで並び替えることがほとんどな気がするんですよね。 ORDER BYする場合は、ヒットするレコードをすべて見つけないとい けないので、見つかったやつだけ順に返すことができなくなります。 そうすると、MyISAMの方が数倍遅くなります。 全文検索をしない場合は今のmroongaでも要求されたら都度レコー ドを返す作りになっているので、MyISAMと速度に大差はないはずで す。 groongaもmroongaもそうなのですが、「実際に使われることはほと んどないけどベンチマークで使われる機能」については高速化の優 先度を下げています。もし、「全文検索 + LIMIT(ORDER BYなし)」 が実際にこういうケースで使うと便利、という例がいくつもあるな ら頑張った方がよさそうな気がします。しかし、もし、ORDER BYな しで使うことは実際はほとんどない、ということであれば頑張らな くてもいいかなぁという気がしています。 MySQLを使っているみなさんにお願いです。 全文検索しながらLIMITをつける場合はORDER BYをつけているかど うか教えてもらえないでしょうか?できれば、ユースケースも一緒 に教えてもらえると実感しやすくて助かります。 > また、「mysql 濁点」などでググってみると、utf8_unicode_ciで濁点まで同一視されてしまうので、アプリケーション側でややこしい処理を書いて対応しているような例が結構見つかります。 > > 今回追加頂いたノーマライザーを使えば、この点についてはアプリケーション側で処理が不要になりそうなので、全文検索用途でなくてもmroongaを導入するメリットとしてアピールできるのではないでしょうか。 おぉ、であれば、ドキュメントにも書いておいた方がいいですね! まだ、コメントでノーマライザーを指定できる機能についてドキュ メントを書いていないですし。。。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コミットへのコメントサービスはじめました: http://www.clear-code.com/services/commit-comment.html