[groonga-dev, 02999] Re: better estimation of rows possible in Mroonga ?

Back to archive index

Kazuhiko kazuh****@fdiar*****
2014年 12月 3日 (水) 17:50:10 JST


こんにちは、かずひこです。

On 02/12/2014 15:25, Kazuhiko wrote:
> On 02/12/2014 07:06, Kouhei Sutou wrote:
>>> Mroongaによる全文検索で、EXPLAINで見えるRowsの値が常に1なのですが、これ
>>> をある程度それっぽい値にすることは可能でしょうか?
>>
>> MySQL/MariaDBのソースをみたんですけど、ムリでした。Groongaは
>> ある程度それっぽい値を返せるんですが、MySQL/MariaDBはそれを
>> 使ってくれない(そもそも要求してくれない)ので常に1になって
>> しまいます。
>>
>> (MariaDB 10.0.15だとsql/sql_select.ccの
>> JOIN_TAB::get_examined_rows()あたりで、MySQL 5.7.5-m15だと
>> sql/opt_explain.ccの
>> Explain_join::explain_rows_and_filtered()あたり。)
>>
>> なので、MariaDB側に相談してみたほうがよさそうです。。。
> 
> 調べてくださってありがとうございます!
> さっそく、maria-developers に投稿してみました。

さっそくお返事がありました!
たぶん須藤さんも maria-developers をご覧になっていると思いますが、

* オフトピックだけどMariaDBではparser ...はindex commentじゃなく、
engine-defined table attributes と使ったほうがずっといいよ。
  https://mariadb.com/kb/en/engine-defined-new-tablefieldindex-attributes/
* 須藤さんの言っていることはそのとおり。
* もし実装したらクエリの実行は改善されるだろう。
* https://mariadb.atlassian.net/browse/MDEV-7250 にこの件を登録したよ。

とのことです。

登録されたチケットを見ると、元々natural language searchではrowsが意味を
なさないのでMATCH...AGAINSTの見積もりは常に1でも影響はなかったけれど、
boolean searchや他のエンジンではそうでないだろう、とありました。

Mroongaもバンドルされたことですし、これがMariaDBで実装されると面白そうで
すね。

かずひこ




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