Как правильно хранить статистику по дням в MySQl?

Т.е. задача хранить статистику по дням, т.е. каждый день записывать, сколько было просмотров у какой-либо новости. Такую статистику хранят многие сайты.
Т.е. таблица получается очень большая, на сайте ежедневно десятки тысяч просмотров, новостей тысячи.

Я представляю себе такую таблицу: ссылка

Т.е. каждый день дата будет другая.
Скажите, нормально, если я буду хранить так? Или предложите, пожалуйста, свой вариант.
  • Вопрос задан
  • 3764 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Suffer
Советую попробовать для хранении статистики использовать Memcached, а раз в какое-то время обращаться к базе данных с целью поддержки актуальности данных.
Ответ написан
Комментировать
alternativshik
@alternativshik
юзайте upsert.
Совокупный уникальный ключ по полю ДАТА + айди_новости, для примера.
Потом просто "insert on duplicate key update" - работает очень шустро как на выборку, так и на запись. Кешить данные за прошлые дни и будет вам счастье. Решение взял не из потолка, а с реально работающих проектов с несколькими стами тысячами визитов/просмотров в сутки.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
десятки тысяч просмотров в сутки это не так уж и много, если подумать. Но вообще грамотнее было бы в базе в таком формате хранить только лог, а на текущий день собирать в кэш с периодическим переносом данных в базу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы