哪种方式在使用Active Record查询的最佳条件下更好

时间:2015-03-09 23:04:05

标签: mysql ruby-on-rails activerecord

实际上我在使用MySql DataBase的WebSite中工作,我想知道哪两种形式更好:

使用该对象创建其他查询:

@inform=Dailyinform.where(:scheduled_start => (@@datestart..@@dateend)).order("scheduled_start DESC").searchServer(@@serverSearch).searchDomain(@@domain_name)
    @dailyInforms=@inform.where.not(:status => 'COMPLETED').searchFailed.page(params[:page]).per_page(5000)
            @restarts=@inform.searchRelaunched.order("scheduled_start DESC").page(params[:page]).per_page(5000)

或直接使用ActiveRecord模型 - 基础:

@dailyInforms=Dailyinform.where.not(:status => 'COMPLETED').where(:scheduled_start => (@@datestart..@@dateend)).order("scheduled_start DESC").searchFailed(@@serverSearch).page(params[:page]).per_page(5000)
    @restarts=Dailyinform.where(:scheduled_start => (@@datestart..@@dateend)).order("scheduled_start DESC").search2(@@serverSearch).page(params[:page]).per_page(5000)

我的问题出现了,因为我觉得第二种方式比第一种方式更快。也许只是我的印象!感谢

1 个答案:

答案 0 :(得分:1)

在性能方面,我认为没有任何区别。活动记录在进行查询时很擅长懒惰,在你真正尝试使用结果之前它不会执行任何操作。

出于这个原因,我会说第一种方法更可取,因为它更干。