【问题标题】:Performance differences between '.find' and '.where' methods'.find' 和 '.where' 方法之间的性能差异
【发布时间】:2011-09-16 18:30:13
【问题描述】:

我正在使用 Ruby on Rails 3.0.7,我想知道,关于性能问题,User.find(<id>) 方法和 User.where(:id => <id>) 方法之间有什么区别。

【问题讨论】:

    标签: ruby-on-rails ruby performance ruby-on-rails-3 methods


    【解决方案1】:

    简短的回答,但是:这真的没关系(除非您的 id 列上没有唯一约束)。

    【讨论】:

    • +1 您可能需要详细说明,这是因为 find 总是返回一条记录。除非提供限制,否则 Where 返回所有匹配的记录。
    • 那么,如果我的“id”列有唯一约束,那么最好的“性能”方式是什么?
    • 没关系。 .find 不需要分配数组(但这是您不应该关心的实现细节)。使用.find 的原因是:.find(foo).where(:id => foo).first 更具可读性。
    【解决方案2】:

    在后台,find 或多或少地完成了您使用 where 描述的内容。您可以在this post 中找到详细信息。话虽如此,如果您希望通过 id 获取单个记录,那么您可能想要使用@987654322@。这就是 find 在您使用 id 的单个参数调用它时最终会做的事情,但是您将跳过它需要运行的所有其他代码来找出您想要的。

    【讨论】:

    • 这个方法好像不存在了。
    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多