我发现一次添加大量记录时,我的Model.create!语句运行时间很长。看了ActiveRecord-Import,但它不适用于散列数组(这是我拥有的,我认为这很常见)。如何提高性能?

最佳答案

使用activerecord-import宝石。假设您正在读取CSV文件并生成Product目录,并且希望以1000个批次插入记录:

batch,batch_size = [], 1_000
CSV.foreach("/data/new_products.csv", :headers => true) do |row|
  batch << Product.new(row)

  if batch.size >= batch_size
    Product.import batch
    batch = []
  end
end
Product.import batch

关于ruby-on-rails - 将记录批量插入到Active Record表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15317837/

10-13 02:02