Оптимизация большого количества счетчиков

Есть разные таблицы в MySql: поддержка, жалобы, удаления, регистрации, сообщения.

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

Все запросы SQL по типу SELECT COUNT, иногда с объединениями.

Проблема. Счетчики для каждого пользователя выводятся в режиме реального времени. Получается, при загрузки страницы отправляется большое количество запросов к MYSQL.

Мне не хватает опыта и знаний. Прошу подсказать, как правильно подходить к вопросу, чтобы не нагружать сайт лишними запросами.

Пришла идея работы с кроном, который раз в 30 секунд будет запускать метод для подсчета актуальных данных и записывать их в отдельную таблицу БД.

А данные для счетчиков подтягивать из этой таблицы, одним запросом.

Это кажется более правильным, чем подсчитывать по 50-100 тыс. записей с каждого обновления страницы.

Поделитесь пожалуйста опытом и мыслями.


Ответы (1 шт):

Автор решения: Ипатьев

Поставь индексы на те поля, по которым идёт подсчёт и забудь эти страхи про "большое количество запросов".

→ Ссылка