cni*_*aou 4 sql activerecord ruby-on-rails
在我的一个Rails应用程序的AR类中,我最终获得了许多新初始化的ActiveRecord对象的数组.
我希望能够以一种有效的方式将它们保存到DB中,理想情况是,在一个方法调用中.目前,我将它们包含在交易中.
就像是:
Object.transaction do
@objects.map(&:save)
end
Run Code Online (Sandbox Code Playgroud)
是否有更有效的解决方案来创建/更新记录数组?
您可以将所有内容包装到事务中,因为数据库只会刷新并更新一次索引.
您不能在标准SQL中的单个SQL语句中插入许多对象.MySQL可以做到这一点,但这是非默认的.我怀疑这有一个巨大的性能优势.
如果这段代码真的是时间关键,你可以异步运行它(通过将它移动到后台线程 - 注意ActiveRecord和多线程存在问题 - 或让它由工作程序执行.或者你可以手动生成SQL - AR是不是这样做的效率非常高.不过,我会去那个只有当这是非常重要的方式,而会认为这是一个黑客呢.
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |