@alexdora
Топ-менеджер

Как можно оптимизировать тут?

Есть таблица MYSQL InnoDB
7ed751f0a56d425bafaa4541ebbc22e6.png
Сейчас в таблице всего ~7500 и таблица растет на скорости 2 записи в минуту. Через пару часов скорость вырастит на 8 в минуту. Или 11500 в сутки. Вроде все похоже на детский сад, но:
1. База имеет среднее 300 запросов / sec
2. Остальные запросы сложнее и не вызывают никакого оверхеда. Притом остальные приложения только записывают в эту таблицу сложную обработку
3. Чтобы отобразить статистику создается JSON для графика двумя запросами:
$get_topstat = $_core->sql->prepare("SELECT * FROM broadcast_top_stat".$sqlClear." WHERE list='".$lang."'");

И именно запрос json вызывает подскок температуры и загрузку 2 ядер на 50% в течении секунды. Т.е если обновлять каждую секунду то получим 50% загрузку процессора:
bf0b6016a1c044e8a6a2e5a33c05165e.png

С учетом того, что еще пока мало строк и обратили на это внимание, требуется вариант разгрузки. Тем более пока страница запрашивает только 2 позиции, а через несколько часов сразу 5 будет запросов.
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
минимум индекс по list, максимум - замена list на связанную по id таблицу или enum (сохраняя индекс, естественно)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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