@driverx18

Правильно ли я понимаю, как отработает индекс?

Например, есть таблица и поля в ней:
entityId, name, country, value
primaryKey сделал составной: entityId, name, country
правильно ли я понимаю, что если я буду делать селект по этим трем полям в таблице в одном запросе, то чтобы правильно отрабатывал индекс, нужно делать WHERE сначала по entityId, второй WHERE - name, и третий where должен быть country. Если поменять порядок, то индекс просто не отработает
Правильно ли понимаю ?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
нет. главное чтоб в where были или первое поле, или первых два поля, или все 3 поля. в каком порядке вы их напишете в запросе - без разницы.

т.е. where country = ?? использовать индекс не будет вообще, а where country = ?? and entityId = ?? будет использовать только первую часть составного индекса (по ентитиИд).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Azperin
Дилетант
Все что нужно - это выполнить запросы с EXPLAIN, он тебе покажет 100% информацию используется индекс или нет. И сразу нет необходимости гадать о правильности понимания.
www.mysql.ru/docs/man/EXPLAIN.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы