Как "установить метку времени" является медленным запросом?
В моем медленном журнале запросов заполняются следующие записи:
# Query_time: 1.016361 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
SET timestamp=1273826821;
COMMIT;
Я думаю, что команда set timestamp
выдается репликацией, но я не понимаю, как set timestamp
может занять секунду. Любые идеи о том, как это исправить?
Ответы
Ответ 1
Timestamp
- это тип данных и встроенная функция в MySQL. Что вы пытаетесь достичь со следующим утверждением?
SET timestamp=1273826821;
UPD: Извините, я не знал о используемых MySQL-хаках.
Кажется, что SET TIMESTAMP
используется как решение для исключения некоторых запросов из медленного журнала.
OP использует патч Microslow, чтобы улучшить статистику в журнале медленных запросов, и этот оператор распространен перед операторами таблиц InnoDB.
Таким образом, ответ на вопрос OP состоит в том, что оператор COMMIT
является медленным запросом, а не SET TIMESTAMP
.
Ответ 2
установить временную метку в каждом медленном журнале запросов, поэтому пропустите эту строку; причина - причина, по которой она появляется в медленном запросе;
Поскольку так много фиксации пришло в медленный журнал, может быть проблема с машиной Ib db, поскольку IO является узким местом для фиксации.
Ожидайте значение ожидающего процессора CPU DB, которое не может превышать 1/количество ядер. Например, если 8 ядер, ожидания ввода-вывода должны быть менее 12%.
iotop может использоваться для отладки, который обрабатывает IO, и iostat может использоваться для мониторинга IO.