最好使用每个类型并检查类型与在活动记录关系中筛选类型的位置



想知道是否说事件是活动记录关系,这...

events.each do |e|
    next unless e.game?
    ....

比这更糟糕...

es = events.where(event_type: "game")
es.each do |e|
    ....

我在想通过SQL过滤可能比迭代每个更快,但不确定循环每个在性能上是否没有什么不同

每个都慢得多。您应该始终优先考虑 ActiveRecord 方法/查询而不是普通 Ruby。

es = events.where(event_type: "game")
es.find_each do |e|
    ....

events.where(...)将返回活动记录关系。因此,您可以使用 find_each .文档建议不要在小集合上使用find_each,但我喜欢规划可扩展性

编辑:如果您有任何限制或偏移量,find_each将忽略限制并使用默认find_in_batches,该将限制覆盖为1000。

相关内容

  • 没有找到相关文章

最新更新