2016-12-12 2 views
2

Когда я запускаю медленный анализатор журнала запросов, я вижу огромное количество запросов в секундах. Я пытался выполнить эти запросы вручную, они выполняются очень быстро (0,01 сек). В чем может быть проблема?Огромное время в журнале медленных запросов (MariaDB)

MySQL Ver 15.1 Distrib 10.1.9-MariaDB, для Linux (x86_64) с помощью Readline 5.1

CREATE DEFINER = 'root'@'192.168.1.101' EVENT `DEL_EXPIRED_BANS` 
    ON SCHEDULE EVERY 10 MINUTE STARTS '2013-10-18 13:38:54' 
    ON COMPLETION NOT PRESERVE 
    ENABLE 
    COMMENT '' DO 
BEGIN 
update users set ban_type=0, ban_expire=null, ban_expire=null, ban_reason=null 
where ban_type > 0 and ban_expire < CURRENT_TIMESTAMP(); 
delete from `flash_client_log` where TIMESTAMPADD(DAY,4, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=1; 
    delete from `flash_client_log` where TIMESTAMPADD(DAY,4, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=0; 
END; 

[корень @ XY1 GameServer] # mysqldumpslow -a -t -sT 15/уаг/Журнал/mysql_slow .log

Reading mysql slow query log from /var/log/mysql_slow.log 
Count: 1344 Time=18446679593472.00s (24792337373626364s) Lock=0.00s (0s) Rows_sent=0.0 (0), Rows_examined=41408.5 (55653024), Rows_affected=0.0 (0), [email protected] 
    update users set ban_type=0, ban_expire=null, ban_expire=null, ban_reason=null 
    where ban_type > 0 and ban_expire < CURRENT_TIMESTAMP() 

Count: 672 Time=18446679593471.92s (12396168686813130s) Lock=0.15s (98s) Rows_sent=0.0 (0), Rows_examined=33953.0 (22816416), Rows_affected=0.0 (0), root[root]@localhost 
    delete from `flash_client_log` where TIMESTAMPADD(DAY,1, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=1 

Count: 672 Time=18446679593471.92s (12396168686813128s) Lock=0.15s (100s) Rows_sent=0.0 (0), Rows_examined=33953.0 (22816416), Rows_affected=0.0 (0), root[root]@localhost 
    delete from `flash_client_log` where TIMESTAMPADD(DAY,3, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=0 

Count: 672 Time=18446679593471.91s (12396168686813120s) Lock=0.09s (63s) Rows_sent=0.0 (0), Rows_examined=14599.2 (9810684), Rows_affected=22.5 (15144), root[root]@192.168.1.101 
    delete from `flash_client_log` where TIMESTAMPADD(DAY,4, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=1 

Count: 672 Time=18446679593470.33s (12396168686812064s) Lock=1.70s (1140s) Rows_sent=0.0 (0), Rows_examined=28865.1 (19397320), Rows_affected=0.4 (237), root[root]@192.168.1.101 
    delete from `flash_client_log` where TIMESTAMPADD(DAY,4, `dttm`) < CURRENT_TIMESTAMP() and `log_type`=0 

Count: 1 Time=18446679639052.95s (18446679639052s) Lock=0.00s (0s) Rows_sent=0.0 (0), Rows_examined=0.0 (0), Rows_affected=0.0 (0), billiards3d_net[billiards3d_net]@localhost 
    delete from guests_log WHERE dttm < DATE_SUB(CURDATE(), INTERVAL 1 WEEK) 
+0

Очевидно, у вас есть 'log_queries_not_using_indexes = on', и вы попадаете в ошибку, которая влияет на запросы, соответствующие критериям и выполняемые через события. На этот вопрос был отправлен отчет об ошибке: https://jira.mariadb.org/browse/MDEV-11552. Ошибка будет исправлена ​​в будущих версиях MariaDB. Между тем, если вы на самом деле не занимаетесь анализом запросов, не использующих индексы, вы можете установить переменную 'off' (если вы это сделаете в конфиге, вам нужно перезапустить сервер, если вы это сделаете во время выполнения, сделайте убедитесь, что это глобальное значение, которое вы меняете, и перезапустите 'event_scheduler'. – elenst

+0

Большое спасибо за ответ. Я думал, что запросы так медленны) – avj83

ответ

0

Часы бегут назад. Вам нужно легко справиться - не превышайте скорость света!

Серьезно, ... Я видел это периодически в течение последних 15 лет во всех версиях MySQL. Количество, которое вы видите, вероятно, -1 рассматривается как номер UNSIGNED.

Рекомендация: подумайте об этом как о нуле и двигайтесь дальше.

Хорошо, это трудно сделать в этом случае, поскольку у вас есть сводка (mysqldumpslow). Источник проблемы находится где-то в slowlog. Если это произойдет снова завтра (в другой части замедления), напишите ошибку с http://bugs.mysql.com (если их там еще нет).

0

Как уже упоминалось в документе comment, на основании этого вопроса было подано bug report. Ошибка теперь исправлена, fix доступен в 5.5 tree и будет выпущен со следующими выпусками MariaDB: 5.5.54, 10.0.29, 10.1.21, 10.2.3.