Kouhei Sutou
kou****@clear*****
2018年 7月 26日 (木) 16:17:51 JST
須藤です。 いろいろありがとうございます。 もろもろダウンロードさせてもらえるとうれしいです! In <01ec01d424a3$a06575a0$e13060e0$@mirror.ocn.ne.jp> "[groonga-dev,04645] Re: index row, maximum size is 8191" on Thu, 26 Jul 2018 14:43:48 +0900, 内山敏郎 <toshio_uchiy****@mirro*****> wrote: > 須藤さま > > お世話になります。内山です。 > > ようやく、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 mailing list > groon****@lists***** > https://lists.osdn.me/mailman/listinfo/groonga-dev