メモとして残しておきます
普通に複数行Insertするとき
INSERT TO テーブル (id, name) VALUES (1, hoge1)
INSERT TO テーブル (id, name) VALUES (2, hoge2)
INSERT TO テーブル (id, name) VALUES (3, hoge3)
複数行挿入を一気に投げたいときに上のようにSQLを投げるとパフォーマンスが悪いのはわかると思います。
ActiveRecodeで書いた時おそらくこんな感じになると思います
(ざっくり頭の中で考えたことなので間違ってるかもしれません、、、)
(配列???).each do |data|
Model.create(data)
end
でもこれを下記のようにSQLを投げる方法について書いていきます。
INSERT TO テーブル名 (id, name) VALUES (1, hoge1),(2, hoge2),(2, hoge2)
gem
を入れる
下記のgemをGemfileに書いて bundle install
します
gem 'activerecord-import'
書き方
imageArray = []
params = なんかの配列
params.each do |data|
array << モデル.new(なんかのモデル)
end
モデル.import(array)
これで複数行のInsertを一回のSQLで実行することができます。