Задать вопрос
@Panda_Tamara
Разработчик проектов под UMI.CMS

Как найти причину увеличения времени execute в PDO?

Реализована следующая схема:
1) на сервер кладутся XML файлы для обработки и записи данных в БД
2) на сервере установлен Gearman, в который добавляется задача на обработку xml, в момент появления нового xml
3) на сервере установлен Supervisord, который держит 10 воркеров, для параллельной обработки очереди в несколько потоков

Все это дело чудесно работает, кроме одного но. У меня логируется время выполнения execute в PDO на вставку/обновление данных в БД . И оно увеличивается. Скажем я положил 80 файлов, на первый execute скрипт потратил 0,002s. на 80 execute это время увеличивается до 0,02.

Что я пробывал:
1) профилирование SQL запроса. По результатам можно точно сказать, что время выполнения запроса не увеличивается.
2) трассировка PHP. Ничего не дало
3) подозрительно кошусь на LOCK TABLES ... WRITE в запросе, но он работает так быстро, что не уверен что дело в нем. Без него скорость такая же, только + ловлю дедлоки.

Получается что на этапе перехода запроса из Execute в PDO в процесс выполнения запроса на СУБД где-то происходит затык. Помогите, что может мешать? Настройки СУБД? настройки коннектов? где еще можно посмотреть и про что можно почитать? спасибо
  • Вопрос задан
  • 266 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Настроить слоу лог в мускуле.
Посмотреть размер кеша мускуля, есть подозрение что ему приходится чистить/читать в кеш , ибо не хватает, и это сильно тормозит процесс.

Больше пока мыслей нет, но думаю затырка в каком-то наполнении чего то, раз первые запросы идут норм.
Ответ написан
Ваш ответ на вопрос

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

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