Вопрос в следующем. Если есть составной ключ таблицы по столбцам col1, col2, col3 и я начну поиск по префиксу, т.е. WHERE col1=something - ускорю ли я выборку если сделаю условие следующим: WHERE col1=something AND col2=something? Плюс ко всему представим что и в случае первого условия и в случае второго условия запрос возвратит одно и тоже количество строк, т.е. таблица примерно следующего содержания:
+---id---+---col1---+---col2---+---col3---+
| 1 | 1 | 1 | ... |
| 2 | 2 | 2 | ... |
| 3 | 3 | 3 | ... |
| 4 | 4 | 4 | ... |
| 5 | 5 | 5 | ... |
+--------+-----------+-----------+-----------+
etc.
Ну и соответственно два варианта запроса - SELECT * FROM table1 WHERE col1=1 и SELECT * FROM table1 WHERE col1=1 AND col2=1.
(P.S. извиняюсь за запись структуры и данных, не знаю как здесь это оформить красиво,старался как мог((()
В идеальном случае у Вас должен быть составной индекс на все поля, которые используются в условиях. SELECT * FROM table1 WHERE col1=1Тут будет использоваться индекс по полю col1
SELECT * FROM table1 WHERE col1=1 AND col2=1 Тут будет использоваться составной индекс по (col1, col2)
Конечно, если у Вас есть индекс по col1 и инекс по col2, то MySQL использует их, но составной будет быстрее.