• Важен ли порядок столбцов в индексе Mysql при поиске Where?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В вашем примере речь идёт, скорее, не о порядке сравнений во WHERE, а о порядке колонок в индексе.
    При поиске используется только начальная часть составного индекса. То есть индекс (a, b, c) можно использовать при поиске по a, ab или abc. Поиск по b, c или bc использовать такой составной индекс не будет.

    Обратите внимание на строчку 'rows' в ответе EXPLAIN'a, подозреваю, что у вас в таблице всего семь строк, а значит запрос просмотрел их все, не воспользовавшись индексом.

    Эврика! Здесь говорится, что в случае покрывающего индекса (а здесь именно такой случай) записи индекса используются для ускорения доступа к данным при переборе, так как записи индекса, в общем случае, занимают меньше места и расположены компактнее, чем записи самой таблицы.
    Ответ написан
    Комментировать
  • Важен ли порядок столбцов в индексе Mysql при поиске Where?

    AlexMcArrow
    @AlexMcArrow
    Люблю РНР, да я такой!
    Здесь create index idx_abc on ind(a,b,c); вы создаете составной индекс
    Здесь ваш запрос explain select a from ind where c='test4' использует часть индекса => индекс используется
    Ответ написан
    8 комментариев