В рельсах 3 простой вызов для подсчета выдает простой запрос на подсчет:
Contact.count
разрешается как:
SELECT COUNT(*) AS count_id FROM "contacts"
поиск всех по имени поля будет разрешен как:
Contact.find_all_by_country("Canada")
SELECT "contacts".* FROM "contacts" WHERE ("contacts"."country" = 'Canada')
Я бы порекомендовал проиндексировать ваш столбец администратора для более быстрого поиска, и это можно перевести в именованную область, но это само по себе только предопределит запрос, но не оптимизирует его.
Важно отметить, что если вы выдадите
Contact.find_all_by_country("Canada").count
count
- это метод класса массива, который фактически не выдает счет в базе данных:
Contact.find_all_by_country("Canada").count
SELECT "contacts".* FROM "contacts" WHERE ("contacts"."country" = 'Canada')