Логирую медленные запросы и запросы без индексов....но происходят чудеса... таблица Код (Text): id (AI), fields(несколько полей), del (INDEX) запрос Код (Text): SELECT * FROM table ORDER BY del LIMIT 1; попадает в лог запросов log-queries-not-using-indexes Код (Text): # User@Host: root[root] @ localhost [] # Query_time: 0.000656 Lock_time: 0.000095 Rows_sent: 1 Rows_examined: 1 SET timestamp=1418277901; SELECT * FROM "table" ORDER BY "del" LIMIT 1; Ок, думаю, наверно ему не нравится SELECT *, ок, делаю так Код (Text): SELECT id FROM table ORDER BY del LIMIT 1 напоминаю, id - AI, что индекс по определению, del - то же индекс Код (Text): # User@Host: root[root] @ localhost [] # Query_time: 0.000299 Lock_time: 0.000150 Rows_sent: 1 Rows_examined: 1 SET timestamp=1418278156; SELECT "id" FROM "table" ORDER BY "del" LIMIT 1; Кто из нас чудит? ( и попутно Код (Text): SET timestamp=1418278156; Это откуда берется и что такое?
explain по этому запросу что дает? это таймстамп. на что это еще похоже? сервер отчитывается о моменте во вселенной когда сия запись имела место быть.
explain в обоих случаях дает одно и то же Код (Text): id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE table index NULL deleted 33 NULL 1
команда repair table или backup/restore любым способом Добавлено спустя 2 минуты 39 секунд: есть консольная утилита mysqlcheck Добавлено спустя 4 минуты 21 секунду: кстати, поле `del` случайно не логическое? типа '1'/'0'. индекс по такому полю сомнителен. Добавлено спустя 2 минуты 49 секунд: см. SO: MySQL not using index when checking = 1 , but using it with = 0