我使用Ruby on Rails创建了API。当我调用API端点插入超过1000条记录时,它会崩溃。
目前,我正在使用数据库Mysql2
我的代码是
quantity.times do
User.create(first_name: "John")
end
其中quantity
是需要插入的记录数,可以是10000,4000000之类的任何数字。
任何人都可以建议我如何在不破坏我的服务器的情况下非常有效地执行此操作
答案 0 :(得分:3)
items = []
quantity.times.each do |row|
items << User.new(name: "john")
end
User.import(items)
只需查看这些benchmarks即可了解此选项的速度。而不是Model.create
为其生成SQL的单独事务,提交和插入,而是在单个查询中处理它。
参考
答案 1 :(得分:0)
我建议您使用find_each 并指定batch_size来循环它。
我认为如果您循环大量的数量与示例相同,我会阻止崩溃
答案 2 :(得分:0)
尝试 gem&#39; activerecord-insert_many&#39; 。在源代码中,查找测试,您可以看到如何使用gem。
谢谢, 阿吉特