Rails排序或排序查询很慢

时间:2013-10-02 15:21:26

标签: ruby-on-rails performance activerecord pagination

使用Rails 3.2,Ruby 1.9,will_paginate。我有100,000条记录,并测试了以下查询:

# 1000+ms to load
@shops = Shop.where(:shop_type => @type).paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')

# 1000+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')

# 1000+ms to load
@shops = Shop.order('created_at DESC').limit(25)

# 1+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25)

我注意到order选项非常慢。测试结果表明will_paginate不是问题。

我应该如何更改它,以便加快order的查询速度。

1 个答案:

答案 0 :(得分:3)

是的,尝试在订单列上创建索引。它会加速它。