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

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

Сначала проверяю EXPLAIN запроса, чтобы понять план выполнения: какие индексы используются, есть ли full table scans, сортировки во временных таблицах.

Затем анализирую:

  1. Индексы - есть ли подходящие, используются ли они
  2. JOIN'ы - не делаются ли лишние соединения
  3. WHERE условия - оптимальны ли условия фильтрации
  4. Подзапросы - можно ли заменить на JOIN

Пример:

sql
EXPLAIN SELECT * FROM orders 
WHERE customer_id = 100 
ORDER BY created_at DESC;

Если вижу filesort или ALL в type - добавляю индекс:

sql
CREATE INDEX idx_customer_created ON orders(customer_id, created_at DESC);

Также проверяю логи медленных запросов (slow query log) и метрики времени выполнения.

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

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

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

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