ragnar_ok
@ragnar_ok

Нужно ли использовать составной индекс?

Таблица company_settings содержит 200 тысяч строк, а таблица companies - 10 строк. Добавил индекс по LOCATION_ID. В EXPLAIN видно, что вместо чтения всех 200 тысяч строк теперь читает только 4 (которые соответствуют LOCATION_ID = 1). Добавил составной индекс по LOCATION_ID и COMPANY_ID. Также читает 4 строки. При этом в EXTRA "Using filesort" в обоих случаях.

Нужно ли использовать составной индекс в этом случае или достаточно индекса по LOCATION_ID?

MySQL 5.7.35-38

SELECT 'ID', 'COMPANY_ID'
FROM company_settings
INNER JOIN companies ON company_settings.COMPANY_ID = companies.ID
WHERE LOCATION_ID = 1
ORDER BY companies.IS_EXIST DESC;
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
ChairfaceChippendale
@ChairfaceChippendale
No prison can hold Chairface Chippendale!
В таком виде не нужно. Пальцем в небо.

ORDER BY companies.IS_EXIST DESC
При этом в EXTRA "Using filesort" в обоих случаях.


Ну а как вы хотели? Этого поля нигде в индексах нет.

Что можно сделать? Учтите, что движок вашей версии не умеет направленность индексов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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