шаг «конец запроса» очень длинный в случайное время - PullRequest
8 голосов
/ 04 августа 2011

Я тестирую веб-приложение, и у меня есть проблема, которая возникает примерно в 1% моих запросов, в основном ОБНОВЛЕНИЯ (но иногда и ВСТАВКА).Я выполнил профилирование этих запросов, и кажется, что это завершающий этап запроса, который занимает много времени.

starting  0.000029
checking permissions  0.000005
Opening tables    0.000017
System lock   0.000005
init  0.000032
Updating  0.000052
end   0.000030
**query end   1.825892**
closing tables    0.000025
freeing items 0.000020
logging slow query    0.000007
logging slow query    0.000029
cleaning up   0.000008

Когда я просматривал документацию

end: это происходит в конце, но до очистки операторов ALTER TABLE, CREATE VIEW, DELETE, INSERT, SELECT или UPDATE.

end end: это состояние возникает после обработки запроса, но до освобождениясостояние элементов.

Значит ли это, что очистка моего ОБНОВЛЕНИЯ требует времени?Что именно делает этот шаг, как я могу улучшить производительность?

Спасибо

1 Ответ

12 голосов
/ 04 августа 2011

Проблема решена путем добавления

innodb_flush_log_at_trx_commit = 0

в /etc/my.cnf

Существует проблема блокировки, когда несколько потоков хотят записать файл одновременно, таким образомжурнал будет очищаться каждую секунду.

...