Ruby on rails Rails创建100k行

Ruby on rails Rails创建100k行,ruby-on-rails,Ruby On Rails,有没有办法优化rails中100K行的创建?我目前正在使用: hash_numbers = SomeModel.all.map {|number| {number: number}} List.last.recipients.create hash_numbers 当列表变长时,它会以指数形式变慢。有什么建议吗?您可以尝试批处理方法之一在批处理中查找或查找每个,这可能仍然是一个很长的过程,但更容易记忆 或者使用limit拆分查询并将每个组放入各自的后台进程的某种方法。您是否尝试过在事务中包

有没有办法优化rails中100K行的创建?我目前正在使用:

hash_numbers = SomeModel.all.map {|number| {number: number}}  
List.last.recipients.create hash_numbers

当列表变长时,它会以指数形式变慢。有什么建议吗?

您可以尝试批处理方法之一
在批处理中查找
查找每个
,这可能仍然是一个很长的过程,但更容易记忆


或者使用
limit
拆分查询并将每个组放入各自的后台进程的某种方法。

您是否尝试过在事务中包装您的
create
,以便db在单个事务中插入您的所有查询?可能还有其他更好的解决方案,但由于您使用ActiveRecord进行批量插入,请尝试一下:

ActiveRecord::Base.transaction do
  1000.times { List.last.recipients.create hash_numbers }
end