sqlinfo.ru/forum/viewtopic.php?id=151
В ссылке выше написано, что WHERE запрос может выполнятся только по левой части составного ключа, т.е. по первому элементу.
Скажите пожалуйста, почему так? И почему не может использоваться по правой части?
Для правильного вопроса надо знать половину ответа
Запрос может выполняться по любой части ключа, но индексы будут работать только по левой части. То есть для KEY(f1, f2, f3) индексы будут работать при поиске по WHERE f1=xx AND f2=xx AND f3=xx, WHERE f1=xx AND f2=xx или WHERE f1=xx. Если нужно ускорить поиск по другой части ключа (например WHERE f2=xx, то надо строить отдельный индекс.
При построении дерева составного индекса KEY(f1, f2, f3) сравнение ключей идёт по указанному порядку полей. В результате ключи сортируются по f1, при равных f1 - по f2, при равных f1 и f2 - по f3. Индекс получается не упорядоченным по отдельно взятому полю f2 или f3.