[groonga-dev,03878] Re: PGROONGAでの等価条件&不等価条件の指定方法

Back to archive index

morit****@razil***** morit****@razil*****
2016年 1月 28日 (木) 18:44:47 JST


max_message_sizeというのを拡張してみました!

2016-01-28 16:35 GMT+09:00 Kouhei Sutou <kou****@clear*****>:

> 須藤です。
>
> In <20160****@orega*****>
>   "[groonga-dev,03875] Re: PGROONGAでの等価条件&不等価条件の指定方法" on Wed, 27 Jan 2016
> 09:57:22 +0900,
>   高見 直輝 <takam****@orega*****> wrote:
>
> > まず、本件と並行している
> > [groonga-dev,03867] Re: PGRNファイルが開けない?
> > に対する返信を21日に行ったのですが、ログファイル添付によるサイズ制限超過
> > で承認待ちの状態になりました。
> > 先ほど添付ファイルをZip圧縮して再送しましたが、ウィルススキャンなどに引っ
> > かかる可能性があるのでご注意ください。
>
> 届いていました。
>
> 森さん、添付ファイルの最大サイズを増やしてもらえないでしょう
> か?500KBくらいまで増やしてもいいんじゃないかと思います。
>
> > 以下の構文で間違いないでしょうか?
> > CREATE INDEX インデックス名 ON テーブル名 USING pgroonga
> > (lower(カラム名) pgroonga.varchar_ops);
> > 動作することは確認したのですが、念のため。
>
> はい、間違いありません。
>
> > テーブル名を変えて下記SQLを実行したところ、下記と同じ結果になりました。
> > 問題が発生しているテーブルでは相変わらずの状態なので、テーブルに登録され
> > ているデータの内容が原因のようです。
>
> あぁ、
>
> ----
> SET enable_seqscan = off;
> SET enable_indexscan = on;
> SET enable_bitmapscan = off;
> ----
>
> として「いない」ときにシーケンシャルスキャンになるということ
> ですか。それはありえます。
>
> > ※総数2万レコード、このうち1万5千程度が『\st\新しいフォルダー』で始まる。
> > %%と@@でインデックスを使用するかどうかの境界が異なる、ということでしょ
> > うか?
>
> ----
> SET enable_seqscan = on;
> SET enable_indexscan = off;
> SET enable_bitmapscan = off;
>
> EXPLAIN
> SELECT path
>   FROM TEST_TABLE
>  WHERE lower(path) @@ lower('\\st\\新しいフォルダー');
> ----
>
> の結果と
>
> ----
> SET enable_seqscan = off;
> SET enable_indexscan = on;
> SET enable_bitmapscan = off;
>
> EXPLAIN
> SELECT path
>   FROM TEST_TABLE
>  WHERE lower(path) @@ lower('\\st\\新しいフォルダー');
> ----
>
> の結果を比べてみてください。
>
> 注目するのは
>
> ----
>  Index Scan using test_table_path on test_table  (cost=0.14..8.16 rows=1
> width=32)
> ----
>
> とでているうちの
>
> ----
> cost=0.14..8.16
> ----
>
> の部分です。
>
> PostgreSQLはこのcostが小さい検索方法を使います。そして、これ
> はレコード数などデータによって変わります。
>
> もし、シーケンシャルスキャンのときに
>
> ----
>  Seq Scan on test_table  (cost=0.00..367.00 rows=1 width=32)
> ----
>
> となっていたら、これはコストが「367.00」でインデックススキャ
> ンの「8.16」よりも大きいです。そのため、この場合はコストが小
> さいインデックススキャンを選びます。
>
> もちろん、逆になっていたらシーケンシャルスキャンを選びます。
>
>
> たぶん、%%の方が@@よりもコストが大きくなっているんだと思いま
> す。どうしてそうなっているかはわかりませんが。。。
>
> @@はPostgreSQL標準で組み込まれている演算子なので、そっちの演
> 算子としてコストが計算されているのかもしれません。
>
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/>
>
> Groongaベースの全文検索システムを総合サポート:
>   http://groonga.org/ja/support/
> パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
>   http://www.clear-code.com/recruitment/
> リーダブルコードワークショップ:
>
> http://www.clear-code.com/services/code-reader/readable-code-workshop.html
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



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