Как "установить метку времени" является медленным запросом?

В моем медленном журнале запросов заполняются следующие записи:

# 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.