1

ActiveRecord と Postgresql を使用した Rails アプリがあります。モデルに meta_data というフィールドがあり、作成したデータ インポート ルーチンを高速化しようとしています。

モデルは次のように定義されています: (無関係なフィールドを削除しました) == スキーマ情報

Table name: entities

id           :integer          not null, primary key
meta_data    :hstore
created_at   :datetime         not null
updated_at   :datetime         not null

ローダー ファイルには、ハッシュの作成に使用する 19 個のフィールドがあります。次に、ハッシュを meta_data フィールドに割り当てて保存します。このアルゴリズムは私のインポートのボトルネックであり、非常に遅いです。テストの過程で、保存をコメントアウトしましたが、それでも非常に遅いことがわかりました。meta_data フィールドの割り当てもコメントアウトすると、はるかに高速になるため、実際に保存を呼び出したり、SQL を実行したりしていなくても、ボトルネックは hstore フィールドの割り当てにあるようです。

これをスピードアップする方法についてのアイデアはありますか?

meta = {}
@demographic_fields.each do |k, v|
  meta[v] = hash[k]
end
my_object.meta_data = meta
#current_entity.save

my_object.meta_data への割り当てをコメントアウトすると、高速になります。

何ができるかわからない。PGの問題ではないようです.rails/activerecord/hstoreの実装の問題です...

前もって感謝します、

マックス

4

0 に答える 0