Почему такое большое время между запросами?

Есть php-скрипт, который генерирует около 100к запросов в базу (исключительно SELECT с несколькими JOIN).

Проблема: в какой-то момент база как будто "подвисает" и скрипт начинает выполняться очень медленно.
Сделал лог тяжелых запросов
slow_query_log = 1
slow-query_log_file = /var/log/mysql-slow.log
long_query_time = 2

Как оказалось, всего 1 запрос выполнялся больше 2 секунд. То есть, видимо, проблема в том, что между запросами проходит большое количество времени (в скрипте нет проблемы, если возникнет такой вопрос).При этом все то время, что обрабатывается скрипт, ядро, на котором висит процесс, загружено на 100%.

Что можно с этим сделать?
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dimuska139
Backend developer
Как вариант, заканчиваются коннекты. Попробуйте увеличить параметр max_connections
Ответ написан
Комментировать
2ord
@2ord
Попробуй подключить какой-нибудь APM, с помощью которого можно получить достаточно информации о запросах, соединениях и других характеристиках. Тогда не придется на кофейной гуще гадать.
Ответ написан
Ваш ответ на вопрос

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

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