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

Какие поля будешь индексировать для оптимизации запроса

При выборе полей для индексации учитываю:

  1. WHERE-условия – индексирую поля, по которым часто фильтруют (WHERE user_id = 5).
  2. JOIN-операции – поля, используемые для соединения таблиц (ON orders.user_id = users.id).
  3. Сортировка и GROUP BY – если запрос содержит ORDER BY created_at или GROUP BY category.

Пример:

sql
-- Без индекса (медленно)
SELECT * FROM orders WHERE status = 'PENDING';

-- Добавляем индекс
CREATE INDEX idx_orders_status ON orders(status);

Нюансы:

  • Избегаю избыточных индексов (увеличивают нагрузку на запись).
  • Для составных условий (WHERE status = 'PENDING' AND user_id = 10) использую составной индекс:
    sql
    CREATE INDEX idx_orders_status_user ON orders(status, user_id);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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