Иметь составной индекс с четырьмя полями, нужно использовать три - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть следующий индекс:

ALTER TABLE mytable ADD INDEX (first, last, age, gender)

Поле возраста имеет значение NULL.

У меня также есть два запроса, которые я запускаю:

SELECT * FROM mytable WHERE first=x and last=y and age=z

И:

SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=w

Как мне убедиться, что оба запроса используют один и тот же индекс?Есть ли способ передать «поддельное значение» или что-то, чтобы оно всегда возвращало true, например:

SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=*

Таким образом, он мог бы автоматически использовать созданный мной 4-индекс.Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 27 ноября 2018

Ключи в индексах используются слева направо.Все ваши условия равны, поэтому оба должны использовать индекс.

MySQL Документация содержит хорошее объяснение того, как используются индексы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...