Встречается на собеседованиях • сегодня

Почему может не сработать индекс в БД

Индекс может не сработать в следующих случаях:

  1. Несоответствие типа данных – например, сравнение строки с числом без явного приведения типов.
  2. Использование функций в условияхWHERE UPPER(name) = 'JOHN' не использует индекс по name.
  3. Оператор LIKE с начальным wildcardWHERE name LIKE '%ohn%' обходит индекс.
  4. Неселективность индекса – если индекс охватывает >15-20% данных, оптимизатор может выбрать full scan.
  5. Отсутствие статистики – устаревшая статистика ведёт к неоптимальным планам запросов.
  6. Составной индекс с неправильным порядком – для INDEX(a,b) условие WHERE b = 1 не использует индекс.

Пример:

sql
-- Индекс не используется из-за функции
SELECT * FROM users WHERE SUBSTRING(email, 1, 5) = 'admin';
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы