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の実装の問題です...
前もって感謝します、
マックス