AFAIK, :include always results in a LEFT OUTER JOIN, which cannot
impact the count and hence should be dropped from the count query
since it slows down the query.
For one LEFT OUTER JOINed object, on PostgreSQL 8.1, I'm getting a 50%
boost after dropping the LEFT OUTER JOIN in the 'SELECT COUNT' query
with the same count.
For example:
Consider the following case:
I think 99% of users use the :include to speed-up queries for eager
loading. Eager loading is suggested as an *optimization* technique.
Ironically, this desired effect is completely lost in the current
implementation.
Since we believe so strongly in *conventions*, why then can we not
mandate that :include tables cannot be referenced in the :conditions.
If one wants to do so, they ought to use the :joins key.