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... 下载