[groonga-dev,04645] Re: index row, maximum size is 8191

Back to archive index

内山敏郎 toshio_uchiy****@mirro*****
2018年 7月 26日 (木) 14:43:48 JST


須藤さま

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

 ようやく、text 型の配列を全部連結した場合の文字列長
をSQLで算出することができ、content カラムに一番長いデータ
が入っている行を取得できました。
 こちらのデータもご準備しました。
 いかがでしょうか。よろしくお願いします。

-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of 内山敏郎
Sent: Thursday, July 26, 2018 10:01 AM
To: '全文検索エンジンGroonga開発メーリングリスト'
Subject: [groonga-dev,04644] Re: index row, maximum size is 8191

須藤さま

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

 これ以上データを減らすとエラーが再現できなくなる。
プランが Bitmap Index Scan になる。ところまでデータを
減らしました。また、テーブルを pg_dump でバックアップして
bzip2 で圧縮することにより、2.4GB となりました。
 いかがでしょうか。よろしくお願いします。

-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of 内山敏郎
Sent: Wednesday, July 25, 2018 3:05 PM
To: '全文検索エンジンGroonga開発メーリングリスト'
Subject: [groonga-dev,04643] Re: index row, maximum size is 8191

須藤さま

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

>そこのロジックを調整したいので
>再現するデータを提供してもらえないでしょうか?

こちらで、可能な範囲で小さくしたデータを作りましたが
8GB あります。PostgreSQL のテーブルを pg_dump で
バックアップした形式なので、psql -f temp.sql すれば
テーブルを再現することができると思います。エラーも
再現できるはずです。
 これで良ければ、ダウンロード URL をお送りします。
よろしくお願いします。

-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of Kouhei Sutou
Sent: Wednesday, July 25, 2018 10:09 AM
To: groon****@lists*****
Subject: [groonga-dev,04641] Re: index row, maximum size is 8191

須藤です。

In <00f401d4230a$f58e8430$e0ab8c90$@mirror.ocn.ne.jp>
  "[groonga-dev,04640] Re: index row, maximum size is 8191" on Tue, 24 Jul
2018 13:58:27 +0900,
  内山敏郎 <toshio_uchiy****@mirro*****> wrote:

> explain verbose select content from subtitled where content &@~ 'ゴルフ';
>
> 現在の結果は、
>
> moovle=# explain verbose select content from subtitled where content &@~ '
ゴ
> ルフ';
>                                                      QUERY PLAN
>
>
----------------------------------------------------------------------------
> ----
> -------------------------------------
>  Index Only Scan using subtitled2_pgroonga_content_idx on public.subtitled
> (cos
> t=0.00..1759.40 rows=1479 width=366)
>    Output: content
>    Index Cond: (subtitled.content &@~ 'ゴルフ'::text)
> (3 行)
>
> moovle=#
>
> です。
>  しかし、自分で調べて、pg_hint_plan を用いて、Index Only Scan を Index
Scan
>> することで、エラーが回避できることが分かりました。PGroonga の問題ではなく
> て、
> PGroongaのインデックスを使っているときに、PostgreSQL が Index Only Scan の
> プランで query を実行するためのようです。
>  PGroonga をインストールしたらこの現象がなくなるようにできればより良いで
す
> が、
> 現状でも回避できることが分かりました。
>  ありがとうございます。

うーん、サイズが大きいときはIndex Only Scanを使わないように
しているつもりなんですよねぇ。そこのロジックを調整したいので
再現するデータを提供してもらえないでしょうか?たぶん、
subtitled.contentに入っている一番大きいデータだけで再現する
ような気がします。

うまく調整できればpg_hint_planを使わなくて済むようになります。


--
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
データ処理ツールの開発:
  http://www.clear-code.com/blog/2018/7/11.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 mailing list
groon****@lists*****
https://lists.osdn.me/mailman/listinfo/groonga-dev




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