Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> mysql cоставной индекс и where in ()
UNSET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 43313
На форуме: 10 месяцев, 25 дней
Карма:





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

Есть таблица 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.

Так?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса