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

Какие шаги предпримешь, если SQL-запрос долго выполняется

Оптимизация SQL-запроса:

  1. Анализ запроса через EXPLAIN ANALYZE для выявления узких мест (например, отсутствие индексов).
  2. Добавление индексов на часто используемые поля в условиях WHERE, JOIN.
  3. Оптимизация структуры запроса — избегать SELECT *, использовать LIMIT, переписать сложные подзапросы как JOIN.

Пример с индексом:

python
# До оптимизации
cursor.execute("SELECT * FROM users WHERE age > 30")  # Медленно без индекса

# Добавляем индекс (SQL-команда)
cursor.execute("CREATE INDEX idx_age ON users(age)")

# После оптимизации
cursor.execute("SELECT id, name FROM users WHERE age > 30 LIMIT 100")  # Быстрее

Доп. меры:

  • Кэширование результатов (Redis, Memcached).
  • Разбивка больших запросов на пагинацию (OFFSET, LIMIT).
  • Проверка нагрузки на БД и масштабирование (репликация, шардинг).

Если проблема не решается — переход к профилированию сервера БД.

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

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

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

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