7

我正在使用 Kaminari 对以下查询进行分页(尽管我使用 will_paginate 得到了类似的结果):

Person.joins([:locations=>:location_hour], :friends, :current_images).where(sql_conditions_string).page(params[:page]).per(10)

一切都按预期工作,但分页添加了数据库调用

SELECT COUNT(*) FROM 'people' INNER JOIN 'location_histories'...

它在整个查询中调用 count(*) 。这需要 1.3 秒,而原始查询(包括完全相同的连接和 .where 条件)仅需要约 0.5 秒。

有没有办法让分页只使用原始查询中的计数?最后一次数据库调用是一个很大的性能问题。

我在 Rails 3.0.7 上。

谢谢!

4

0 回答 0