[英]Rails active record, performance when chaining where clauses
我只是希望得到一些反馈,以确保我理解正确。 根据我的阅读,我的理解是,拥有多个where
实例不应损害应用程序的性能,因为ActiveRecord relation
对象本身在链接完成之前不会执行 SQL 查询
就我而言,假设我有一张名为Game
的桌子和一张名为Players
的桌子。 游戏有很多玩家,玩家参与了很多游戏。 我想允许用户在搜索框中输入名称并搜索所有游戏并按玩家名称过滤它们。 如果用户没有输入任何内容,它应该返回属性prospective == false
的所有游戏的列表
这段代码在功能上对我来说很好。 我只是想确保从性能的角度来看,我没有做任何次优的事情。
def controller_name
games = Game.where.not(game: :prospective).order('score DESC')
if search_text.present?
games = games.joins(:players).where("lower(players.name) LIKE ?", "%#{search_text.downcase}%")
end
return games
end
就我而言,我实际上使用的是 GraphQL,但我认为这不会有什么不同。 我只是想确认在那种情况下不会执行 2 个单独的查询search_text.present? == true
search_text.present? == true
我也欢迎任何其他关于优化或更简洁地编写它的建议。 我对rails相当陌生
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.