[groonga-dev,04480] Re: 【ご報告】インデックスを使って検索したいときにシーケンシャルスキャン

Back to archive index

toshio_uchiy****@mirro***** toshio_uchiy****@mirro*****
2017年 9月 15日 (金) 16:13:30 JST


須藤さま

 お世話になります。内山です。

 追記です。提供するデータは、スキーマありの robot テーブルの
データを準備できました。
 Create extension pgroonga した PostgreSQL 96 に、適当なデータベース
を作っていただいて、

psql -d databasename -h machinename -U postgres -f sql ファイル

としていただければ、こちらの環境と全く同じテーブルが再現されます。
 ご検討ください。

-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of
toshio_uchiy****@mirro*****
Sent: Friday, September 15, 2017 2:42 PM
To: '全文検索エンジンGroonga開発メーリングリスト'
Subject: [groonga-dev,04479] Re: 【ご報告】インデックスを使って検索したいと
きにシーケンシャルスキャン

須藤さま

 お世話になります。

>このデータを提供してもらえれば、推定ヒット数をだすロジックを
>改良できるかもしれないのでご検討ください。

お役に立てるなら、やぶさかではありません。ただし、提供データは
ロジック改良目的のみに使用していただき、その他には使用しないと
いう条件です。

現在、データをウェブサーバーにアップしています。

データは、PostgreSQL の robot テーブルのみをスキーマなしの
data-only でエクスポートしたものです。テーブルスキーマが必要なら
お申し付けくだされば、データ型などはご提供できます。

おそらく、ウェブサーバーからダウンロードするように
できると思います。1.8GB です。こちらのネット環境は、個人宅の
光 1Gbps 接続です。
 数時間、ダウンロード用にセッションをはっていただいても、
問題ありません。途中でセッションが切れてダウンロードできない
などありましたら、DVD に焼いてお送りします。

 このような条件でよろしいでしょうか。ダウンロード、URL は、
別途、須藤さまにお知らせします。ご検討のほどよろしくお願いします。


-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of Kouhei Sutou
Sent: Friday, September 15, 2017 2:11 PM
To: groon****@lists*****
Subject: [groonga-dev,04478] Re: 【ご報告】インデックスを使って検索したいと
きにシーケンシャルスキャン

須藤です。

In <043a01d32dba$e9174660$bb45d320$@mirror.ocn.ne.jp>
  "[groonga-dev,04477] 【ご報告】インデックスを使って検索したいときにシーケ
ンシャルスキャン" on Fri, 15 Sep 2017 09:38:12 +0900,
  <toshio_uchiy****@mirro*****> wrote:

> 何もしないで検索すると

>    ->  Seq Scan on robot  (cost=0.00..417224.88 rows=2920069
> width=279)

のcostの値の方が

> とシーケンシャルスキャンします。set enable_seqscan to off; すると

>    ->  Bitmap Heap Scan on robot  (cost=1460.03..418684.91
> rows=2920069

のcostの値より少し小さい

  417224.88 →
  418684.91

のでPostgreSQLはシーケンシャルスキャンを選択しています。

>                ->  Bitmap Index Scan on
> robot2_lower_r_delimmit_tags_idx
(cost=0.00..0.00 rows=2595875 width=0) (actual time=17.836..17.836
rows=6238> loops=1)
>                      Index Cond: (lower(tags) &@ 'iphone'::text)
>                ->  Bitmap Index Scan on robot2_lower_r_mecab_title_idx
(cost=0.00..0.00 rows=2595875 width=0) (actual time=21.514..21.514
rows=13623 loops=1)
>                      Index Cond: (lower(title) &@ 'iphone'::text)

の推定ヒット数(rowsのところの2595875)が実際のヒット数(actualの方の
rowsのところ)とかけ離れているのが適切なプランを選択できない
原因です。


このデータを提供してもらえれば、推定ヒット数をだすロジックを
改良できるかもしれないのでご検討ください。もし改良できれば、
明示的にenable_seq_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

_______________________________________________
groonga-dev mailing list
groon****@lists*****
https://lists.osdn.me/mailman/listinfo/groonga-dev

_______________________________________________
groonga-dev mailing list
groon****@lists*****
https://lists.osdn.me/mailman/listinfo/groonga-dev




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