grabbee
@grabbee

Почему MYSQL игнорирует индекс при объединении?

Есть простой запрос с выборкой по единственному boolean полю по которому создан индекс.
SELECT l3_.id FROM table l3_ 
WHERE l3_.boolean = 0
И этот индекс используется (Using index).

Но, если просто добавить объединение, он начинает игнорироваться
SELECT l3_.id FROM table l3_ 
    INNER JOIN second f4_ ON l3_.some_id = f4_.id
WHERE l3_.boolean = 0
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
потому что WHERE применяется к результату объединения. если нет индекса по l3_.some_id, то для проверки условия в ON нужно обойти всю table и чтение индекса все равно будет лишним

p.s. чтение индекса - тоже операция чтения
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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