Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Странное поведение запроса в выборе ключа
WHERE bar_id IN(218,261,219,216,217,262,254,233,235,209,234,237,236,238,197,220,239,223,208,141,136,232,139,145,144,140,138,44,126,58,120,8,117,5,119,124,113,21,30,31,33,35,36,42,94,98,72,76,77,114,111,115,101,102,108,171,172,180,154,155,185,156,196,214,204,205,206,194,131,170,224,229,277,280,282)AND....
explain которого показывает
select_type table type possible_keys key key_len ref rows Extra
PRIMARY foo ALL key_1,key_5,key_id NULL NULL NULL 243263 Using where; Using temporary; Using filesort
Но если убрать из списка значение 5 именно его!
то получаю
select_type table type possible_keys key key_len ref rows Extra
PRIMARY foo range key_1,key_5,key_id key_1 5 NULL 25013 Using where; Using temporary; Using filesort
Почему так происходит?
Спасибо
LIME
Отправлено: 19 Января, 2015 - 16:41:34
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Оптимизатор посчитал, что линейный fullscan по таблице будет дешевле, чем случайные чтения по ключу.
Сколько там этих пятых значений в таблице? Не помню пороговую величину, но если оптимизатор считает, что по индексу придётся читать много данных относительно всего объёма таблицы, то этот индекс использоваться не будет.
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Так это индекс не по перечисленным значениям
они не range (Добавление) RomAndry хз...посмотри как это может быть связано (Добавление)
Может отсутствие 5 убирает дальше по запросу какое-то значение выбивающееся из сплошного диапазона
убрали 5 убрали и то значение
и диапазон заработал
что-то типа того
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.