Всем привет, столкнулся со следующей проблемой. Имеется таблица visits (фиксирует посещения пользователей). Задача: выводить посещаемость по дням с возможностью постраничного вывода. В отличии от простых запросов (без GROUP BY) подобных проблем нет. Но тут считать общее кол-во результатов (без LIMIT) mysql отказывается. На данный момент такой вывод реализован через аж целых 3 запроса: SELECT date, COUNT(*) as count FROM visits WHERE .... GROUP BY date ORDER BY date DESC LIMIT 0, 30 - это основной SELECT date, COUNT(*) as count FROM visits WHERE .... GROUP BY date - это для подсчёта SELECT FOUND_ROWS() as cnt - это сам подсчёт Скорее всего со временем - это дело начнет жутко тормозить при больших объёмах данных, хотелось бы посоветоваться, как сделать лучше и правильней. Заранее благодарю за ответы.
используй SQL_CALC_FOUND_ROWS в 1-м запросе При больших объемах данных просто сформируй вспомогательную таблицу для хранения данных по дням и получай из нее данные о количестве визитов
SELECT count(distinct `date`) FROM visits WHERE ...; - для подсчета. Один запрос далеко не всегда быстрее двух. И как раз использовать SQL_CALC_FOUND_ROWS не стоит. См тут.