@hunter_outlaw

Как правильно делать выборку со счетчиками?

Здравствуйте
Есть каталог товаров. Счетчики комментариев, лайков и просмотров вынес в отдельную таблицу. Если делать обычную выборку товаров, то запрос кешируется с помощью встроенного механизма кэширования и соответственно последующие результаты выборки по этому же запросу берутся из кэша, что значительно ускоряет работу.
Необходимо реализовать возможность сортировки по количеству просмотров и лайкам, но для реализации сего, необходимо соединить обе таблицы (товары и счетчики) с помощью JOIN LEFT. Но такие запросы уже менее эффективны, так как при каждом обновлении счетчика, результат запроса удаляется из кэша, из-за чего запрос становится медленней почти в 20 раз.

Как грамотно реализовать систему счетчиков и сортировки, что бы это отрицательно не повлияло на производительность?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Собсно в чем проблема? У вас виснет сервер, не хватает соединений к базе? Пользователи прут стремительным домкратом и сервер не успевает отдавать незакешенные запросы?
Если нет - какие проблемы? Так есть и так должно быть, выборка из таблиц с актуальными данными всегда будет происходить из базы напрямую, если джоин не включает 4 таблицы по овер 10 мильёнов записей - все будет работать быстро, ну, если структура верная. А если нет - смотрите как оптимизировать базы, кеш здесь вообще как бы ниочем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы