Kouhei Sutou
kou****@clear*****
2016年 10月 14日 (金) 14:21:03 JST
須藤です。 In <19853****@web10*****> "[groonga-dev,04150] Re: PGroongaの検索で大量件数該当時のエラーについて" on Fri, 14 Oct 2016 14:12:02 +0900 (JST), tak_kaz24****@yahoo***** wrote: > テーブルのカラム数に関しては8カラムでpgroongaのインデックスはTEXT型の1カラムのみ設定しています。 > TEXT型には日本語の文章が入るのでそれなりに大きいサイズとなります(大きいデータで100KB程度)。 うーん、それだと別に大したことはないですねぇ。。。 > 仮想メモリに関しては以下を参考に最少6140、最大12300にしてみましたが事象が改善されませんでした。 > ただこの対応をしたためなのかpgroonga.logにエラーが出力されなくなりましたね・・・ > SQLがエラーになるのは変わりませんが。 SQLでは以下の2種類のエラーがあったと思いますが、どちらのエラー もでるということですか? > ERROR: pgroonga: failed to allocate memory for generating snippet > SQLステート:53200 > ERROR: index row requires 32920 bytes, maximum size is 8191 仮想メモリを増やすことで前者のエラーがでなくなることをきたし ていました。 後者はPostgreSQLの制限なので仮想メモリは関係ありません。 なので、今のところIndex Only Scanを無効にするしか対応方法は ありません。 > 速度劣化については大量件数で計測していないですが概算で10%程度でしょうか。 情報ありがとうございます。 検索時間が0.01秒か1秒かで10%の重みが変わってくるのですが、 もし、0.01秒で10%ならPGroonga側で安全側に倒してIndex Only Scanを無効にするのもアリだなぁと思いました。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ OSS開発支援サービス: http://www.clear-code.com/blog/2016/6/27.html