Rails:vs vs map(&:attribute)

时间:2012-08-22 14:39:54

标签: sql ruby-on-rails activerecord map

假设我们有3个用户[User name="A"], [User name="B"], [User name="C"]

(检查在场状态)之间是否存在差异:

if User.where(name: "A").first

User.all.map(&:name).include? "A"

谢谢。

1 个答案:

答案 0 :(得分:5)

使用where仅通过SQL检索与该名称匹配的用户。

映射加载所有用户,构建其名称数组,并检查“A”。

对于少数用户而言,性能的差异可以忽略不计,但是在某个点之后内存和时间都会受到很大影响,并且where 很多< / em>更好。在数据库中完成工作将比天真地检索所有数据并在Ruby中执行更好。