Всем привет!
Как быстрее посчитать количество записей по условию ? да count(*) работает быстро, но если посмотреть через eчplain Она пробегается по 45 000 записей по моему примеру чтоб сказать сколько записей соотвествуют условию, это плохо.
Запрос такого вида
SELECT COUNT(*) FROM tovar WHERE categories_id IN (и тут ~1800 категорий)
есть индекс по categories_id и отсуюда 45 000 записей а не все записи. Как вы догадались это нужно для пагинатора.
Вопрос: "Мб не стоит каждый раз делать пересчет а забирать откуда нибудь ?"1) Можно хранить где нибудь в памяти и отдута считать и потом выводиться записи по limit and offset
2) Или же можно создать представление и отуда считать сколько записей по этой категории, славу богу я могу посмотреть через индефикатор родительской категории. В моем примере категории 1 принадлежат ~1800 подкатегорий в виде дерева.
И индефакотором будет категория номер 1 где 45 000 записей
Вопрос: "При обращение к представлению будут каждый раз снова считаться данные ? или только при каких либо действиях с данными ? "