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

Расскажи про опыт оптимизации запросов к БД

Оптимизация запросов к БД — критически важный навык для работы с большими объемами данных. Основные подходы:

  1. Индексы — создание правильных индексов под частые запросы. Например:
python
# До оптимизации
User.objects.filter(email='test@example.com')  # Без индекса на email

# После
class User(models.Model):
    email = models.CharField(max_length=255, db_index=True)
  1. EXPLAIN ANALYZE — анализ плана выполнения запроса для выявления узких мест.

  2. Оптимизация ORM:

  • select_related() для JOIN (ForeignKey)
  • prefetch_related() для M2M
  • only()/defer() для выбора конкретных полей
  1. Денормализация — иногда стоит дублировать данные для ускорения чтения.

  2. Кэширование — Redis/Memcached для часто запрашиваемых данных.

  3. Пакетные операцииbulk_create(), update() вместо множества отдельных запросов.

Пример из опыта: сократил время отчетного запроса с 15 сек до 200 мс через комбинацию индексов, prefetch_related и денормализации некоторых полей.

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

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

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

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