假设我们有3个用户[User name="A"], [User name="B"], [User name="C"]
(检查在场状态)之间是否存在差异:
if User.where(name: "A").first
和
User.all.map(&:name).include? "A"
谢谢。
答案 0 :(得分:5)
使用where
仅通过SQL检索与该名称匹配的用户。
映射加载所有用户,构建其名称数组,并检查“A”。
对于少数用户而言,性能的差异可以忽略不计,但是在某个点之后内存和时间都会受到很大影响,并且where
很多< / em>更好。在数据库中完成工作将比天真地检索所有数据并在Ruby中执行更好。