内山敏郎
toshio_uchiy****@mirro*****
2017年 12月 5日 (火) 05:37:22 JST
須藤さま お世話になります。内山です。 再測定は、昨日の午後二時ごろには完了していたのですが、 会社からメールを書けずに、今になりました。 >PostgreSQLからデータを取得する方法を変えたところデータのコピー >が数分で終わるようになりました。 > ご対応ありがとうございます。 >次のPGroongaのリリースに入ります。 >リリース日は未定ですが。。。 リリースしていただけたら、再々測定して報告します。 再測定の結果ですが 1レコードに、動画情報と字幕を一行一行入れたテーブル。 同じ動画の字幕について、字幕が100行とかあるので動画情報を重複して テーブルに格納する必要がある。字幕に pgroonga のインデックスを作成 するのに 3分10秒(現在、この方法です) 1レコードに、動画全部の字幕を入れる。字幕は分割しない。 インデックス作成に2分30秒。 Jsonb を使って、1レコードに動画全部の字幕を入れる。字幕一行は Jsonb の配列で分割して格納する。インデックス作成に7分 Text[] を使って、1レコードに動画全部の字幕を入れる。字幕一行は Text[] で分割して格納する。インデックス作成に2分30秒。 となりました。 再測定が必要となった原因のデータ投入プログラムのバグですが、 投入データの配列を、DBテーブルの1レコードごとに初期化 しなかったため、一度、字幕がたくさんある動画レコードを 格納した配列の後ろの方が、字幕の少ない動画について残っていました。 すなわち、ごみとして残ったデータを延々とDBテーブルに 投入していたことになります。 これにより、不必要な字幕のコピーとインデックス作成を おこなっていたことになります。 須藤さまの O(n) の話に納得です。 お手を煩わせて、誠に申し訳ありませんでした。 今回の測定で、text[] を使うことにより、検索データの データ量を増やせる可能性が見えてきました。 取り急ぎ、お礼まで。 -----Original Message----- From: groon****@lists***** [mailto:groon****@lists*****] On Behalf Of Kouhei Sutou Sent: Monday, December 4, 2017 11:49 PM To: groon****@lists***** Subject: [groonga-dev,04554] Re: JSONB や 配列フィールドについての pgroonga インデックス作成時間および、jsonb のフェッチについて 須藤です。 In <20171****@clear*****> "[groonga-dev,04553] Re: JSONB や 配列フィールドについての pgroonga イン デックス作成時間および、jsonb のフェッチについて" on Sun, 03 Dec 2017 15:38: 16 +0900 (JST), Kouhei Sutou <kou****@clear*****> wrote: > 私の手元で確認した感じだと圧縮は関係なくて、PostgreSQLから > Groongaにデータをコピーしているところで遅そうでした。そう判 > 断した理由ですが、Groongaレベルでデータをコピーしたら数分で > 終わったからです。PostgreSQLからGroongaへのコピーは確かに10 > 時間ちょいかかりました。 PostgreSQLからデータを取得する方法を変えたところデータのコピー が数分で終わるようになりました。 PostgreSQLの配列はn番目の要素にアクセスするにはO(n)かかるん ですね。1つずつn番目の要素にアクセスしているのをイテレーター を使って順にアクセスするようにしたら普通の速さになりました。 次のPGroongaのリリースに入ります。 リリース日は未定ですが。。。 報告およびデータ提供ありがとうございました。 -- 須藤 功平 <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