[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql cоставной индекс и where in ()
UNSET

Здравствуйте. Помогите понять.

Есть таблица tab: id(int) + col1(int) + col2(int) + col3(int) + col4(int)

у нее составной индекс COL :col1+col2+col3+col4

и вот такой запрос:


SELECT *
FROM tab
WHERE
col1 IN (1,6,9) AND
col2=54 AND
col3 IN (0,1) AND
col4=5


Правильно ли я понимаю, что здесь полностью используется индекс COL ? Несмотря на IN mysql просто еще раз обходит по индексу.

EXPLAIN вроде говорит что это так - Using index conditionи показывает точно число строк.

А вот если б было:

SELECT *
FROM tab
WHERE
col1>0 AND
col2=54 AND
col3 IN (0,1) AND
col4=5


то индекс бы не использовался после col1.

Так?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.