Rails 3:ActiveRecord选择查询优化

时间:2013-12-16 21:31:30

标签: ruby-on-rails activerecord

我有一个rails3应用程序,我试图优化一些SQL查询。

User.select([:id, name]).all,是否比User.all更快?

1 个答案:

答案 0 :(得分:1)

User.select([:id, :name]).all比User.all

更快
  1. select id, name from usersselect * from users
  2. 所有返回的记录都由AR包装,因此初始化对象时只需要2个值(id,name)将花费更少的时间。

    1.9.3p448 :002 > Benchmark.measure {User.select([:id, :name]).all }
    =>   0.340000   0.010000   0.350000 (  0.348017)
    
    1.9.3p448 :003 > Benchmark.measure {User.all }
    => 0.770000   0.060000   0.830000 (  0.935314)