Как «установить метку времени» может быть медленным запросом? - PullRequest
13 голосов
/ 14 мая 2010

Мой журнал медленных запросов полон записей, таких как:

# Query_time: 1.016361  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
SET timestamp=1273826821;
COMMIT;

Я полагаю, что команда set timestamp создается репликацией, но я не понимаю, как set timestamp может занять больше секунды. Есть идеи как это исправить?

Ответы [ 2 ]

14 голосов
/ 14 мая 2010

Timestamp - это тип данных и встроенная функция в MySQL. Чего вы пытаетесь достичь с помощью следующего утверждения?

SET timestamp=1273826821;

UPD : Прошу прощения, я не знал об используемых взломах MySQL.

Похоже, что SET TIMESTAMP используется как решение для исключения некоторых запросов из медленного журнала .

OP использует исправление Microslow для улучшения информации о статистике в журнале медленных запросов, и этот оператор является обычным перед операторами в таблицах InnoDB.

Таким образом, ответ на вопрос OP заключается в том, что оператор COMMIT является медленным запросом, а не SET TIMESTAMP.

7 голосов
/ 08 ноября 2012

установленная временная метка появляется в каждом журнале медленных запросов, поэтому пропустите эту строку; фиксация - причина, по которой он появляется в медленном запросе;

Так как в медленный журнал поступило так много коммитов, проблема может быть в машинном дБ, поскольку узким местом для фиксации является узкое место.

Отслеживать значение ожидания ввода-вывода ЦП БД, которое не может превышать 1 / количество ядер. Например, если 8 ядер, IO wait должно быть меньше 12%.

iotop можно использовать для отладки процесса чтения / записи ввода-вывода, а iostat можно использовать для мониторинга ввода-вывода.

...