我正在使用 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 上。
谢谢!