为什么这段代码比较慢?

时间:2011-02-23 21:05:28

标签: ruby ruby-on-rails-3 postgresql

只需将我的代码更新为Rails 3,但是我遇到了以下代码的主要性能问题。

旧代码(漂亮又快捷)

@products = Product.all(
                        :order => 'name',
                        :include => [:category, :brand, :merchant]
                       ).paginate(:page => params[:page])

新代码(慢10倍)

@products = Product.order("name")
                   .includes([:category, :brand, :merchant])
                   .paginate(:page => params[:page])

我添加了换行符以方便阅读。

我正在为我的数据库使用Postgres,也许这就是问题?

使用此代码更好的任何其他提示将非常感谢!

2 个答案:

答案 0 :(得分:1)

我会检查输出的SQL(来自日志或控制台)以查看是否有更改的内容和/或查询的优化方式。

答案 1 :(得分:0)

这可能是分页的问题吗?您使用哪个插件进行分页?你可能想尝试Kaminari。