Sobes.tech
Назад к вопросам
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, стоит создать отдельный индекс по этому полю или изменить порядок полей в составном индексе.