Назад к вопросам
Senior
6
Есть составной индекс по полям name и username. Сработает ли индекс при запросе WHERE username = ?
Компании, где спрашивали
Ecom.tech
Ответ от нейросети
sobes.tech AI
Если индекс составной по полям (name, username), то его эффективность зависит от порядка полей в индексе и условий запроса.
В большинстве СУБД составной индекс работает эффективно, если в WHERE используются поля, начиная с первого поля индекса. В вашем случае, если индекс создан как (name, username), то запрос с условием только по username (WHERE username = ?) обычно не сможет использовать этот индекс эффективно, потому что первый столбец (name) не участвует в фильтрации.
Если же индекс создан как (username, name), то запрос по username будет использовать индекс.
Для примера:
- Индекс (name, username) — запрос по username без name — индекс не сработает.
- Индекс (username, name) — запрос по username — индекс сработает.
Если часто нужны запросы по username, стоит создать отдельный индекс по этому полю или изменить порядок полей в составном индексе.