While there are some problems with huge tables, I don't think we can create a generic solution to handle those cases. One option may be to have a separate method in PaginatorComponent that does the count, allowing people to replace just that method if needed.

One possible solution to the issues with `count()` and grouped/having queries could be to change how the method works. When there are group, having, or mapReduce filters it could return the rowCount() of the ResultSet instead of modifying the fields and doing a simple `count(*)`. We could also get fancy and take columns out of group by clauses and create `COUNT(DISTINCT foo)` expressions from them. This has a much higher chance of failing though.