新手问题 Rails 的 ActiveRecord Query 和延迟加载!

egg_show · 2014年05月29日 · 最后由 ywjno 回复于 2014年05月30日 · 2644 次阅读

Rails 的数据库查询,如 User.find(1) 是一次查询出了 id 为 1 的一行数据吧?那有时候我只需要验证 id 为 1 的数据是否存在,岂不是浪费资源去获取了很多冗余数据,Rails 有没有延迟加载的说法呢?

User.exists?(1)

#1 楼 @zgm 总感觉 find_by_...什么的方法不喜欢,因为它老是取出冗余数据,喜欢用 select([:user_id, :user_name...]).where,是我太怪吗?- -

#2 楼 @egg_show 加 seclect 的话很有可能在你以后加字段的时候出现尴尬情况

#3 楼 @zj0713001 倒也是,各有利弊 - -

功能没出来之前,不要考虑什么效率,因为你都不知道真正需要优化的在什么地方

可惜,我们的编码规约要求 select 必须要写只需要查询的字段名

需要 登录 后方可回复, 如果你还没有账号请 注册新账号