Итак, у меня есть база данных, содержащая журналы людей, нажимающих на ссылку. Я храню id
, country
, referrer-domain
, clickedat
. Этот последний столбец является отметкой времени.
На данный момент строк не так много, но если это произойдет, это может быть от десятков до сотен тысяч строк. Каков наилучший способ запросить базу данных для таких вещей:
- Количество просмотров в день за последний месяц
- Топ-20 стран, которые использовали вашу ссылку
- Топ 20 веб-сайтов, ссылающихся на вашу ссылку
Использование COUNT(*)
в конечном итоге будет слишком медленным. Я видел методы, в которых вы добавляете еще один запрос к каждому обновлению, вставке, удалению, которое происходит для сохранения в специальной таблице агрегации. Но я не уверен, что это сработает, так как я хотел бы, чтобы пользователи могли, например, выбрать две конкретные даты. Или мне пришлось бы агрегировать по дням.