За последние 24 часа нас посетили 23605 программистов и 1543 робота. Сейчас ищут 992 программиста ...

Непонятки с log-queries-not-using-indexes

Тема в разделе "MySQL", создана пользователем Dmitriy A. Arteshuk, 11 дек 2014.

  1. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Логирую медленные запросы и запросы без индексов....но происходят чудеса...

    таблица

    Код (Text):
    1. id (AI), fields(несколько полей), del (INDEX)
    запрос

    Код (Text):
    1. SELECT * FROM table ORDER BY del LIMIT 1;
    попадает в лог запросов log-queries-not-using-indexes

    Код (Text):
    1. # User@Host: root[root] @ localhost []
    2. # Query_time: 0.000656  Lock_time: 0.000095 Rows_sent: 1  Rows_examined: 1
    3. SET timestamp=1418277901;
    4. SELECT * FROM "table" ORDER BY "del" LIMIT 1;
    Ок, думаю, наверно ему не нравится SELECT *, ок, делаю так

    Код (Text):
    1. SELECT id FROM table ORDER BY del LIMIT 1
    напоминаю, id - AI, что индекс по определению, del - то же индекс

    Код (Text):
    1. # User@Host: root[root] @ localhost []
    2. # Query_time: 0.000299  Lock_time: 0.000150 Rows_sent: 1  Rows_examined: 1
    3. SET timestamp=1418278156;
    4. SELECT "id" FROM "table" ORDER BY "del" LIMIT 1;
    Кто из нас чудит? (

    и попутно

    Код (Text):
    1. SET timestamp=1418278156;
    Это откуда берется и что такое?
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    удивлен...что никто не знает, но апну на всякий )
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    explain по этому запросу что дает?

    это таймстамп. на что это еще похоже? сервер отчитывается о моменте во вселенной когда сия запись имела место быть.
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    explain в обоих случаях дает одно и то же

    Код (Text):
    1.  
    2. id  select_type table    type    possible_keys  key key_len ref rows    Extra
    3. 1   SIMPLE          table   index   NULL          deleted   33  NULL      1
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    possible_keys NULL
    key deleted
    это как? возможных индексов нет - используем индекс кей...
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    что-то сломалось, пмсм. нужен рипейр или бэкап-рестор.
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    вот и я не пойму (((
    чего нужно? простите....(((
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    команда 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
     
  9. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    не, varchar(10) оно