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

Что будешь делать, если планировщик не использует индекс при поиске записи

Проверю несколько возможных причин и решу проблему:

  1. Оптимизатор не видит выгоды - если таблица маленькая, индекс может игнорироваться. Проверю размер таблицы:
sql
EXPLAIN ANALYZE SELECT * FROM users WHERE status = 'active';
  1. Неподходящий тип данных - сравнение разных типов (например, строки с числом) может пропускать индекс. Проверю типы полей.
  1. Низкая селективность - если условие охватывает >30% данных, сканирование может быть выгоднее. Проверю селективность:
sql
SELECT COUNT(*) FROM table WHERE condition;
  1. Статистика устарела - выполню ANALYZE TABLE для обновления статистик.

  2. Функции в условиях - выражения типа WHERE UPPER(name) = 'JOHN' мешают использованию индекса. Перепишу запрос.

  3. Составной индекс - проверю порядок колонок в индексе для запросов с несколькими условиями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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