最高效的Rails查询方法

时间:2019-02-19 16:35:59

标签: mysql ruby-on-rails activerecord

我一直在研究编写高效ActiveRecord查询的几种方法,我认为我可能会提出以收集关于谁认为最好的共识。

@page = @current_shop.pages.where(state: "home").first

目前,我推测find_by_sql可能是最好的路线?

1 个答案:

答案 0 :(得分:1)

Rails有助于记录每个查询的执行时间,并且这种形式的查询通常非常简单。这是双重条件SELECT,应用了LIMIT

find_by_sql是为例外情况保留的,而不是常规情况。在这种情况下,如果您使用“原始查询”路由,则最多可以节省一毫秒的时间。您还将获得原始查询结果,而不是模型,然后必须对其进行处理。

这是过早优化的经典案例。如果您遇到的是可衡量的性能问题,而不是可疑的性能问题,那么您可能要考虑使用缓存来完全避免数据库调用,而不是尝试更快地执行它。