Встречается на собеседованиях • сегодня
Что такое проблема N+1
Проблема N+1 возникает при работе с ORM (например, SQLAlchemy или Django ORM), когда для получения связанных данных выполняется 1 запрос для основного набора данных и N дополнительных запросов для связанных сущностей. Это приводит к значительному снижению производительности.
Пример в SQLAlchemy:
python
# Проблема N+1
users = session.query(User).all() # 1 запрос
for user in users:
print(user.posts) # N запросов (по одному на каждого пользователя)Решение — использовать жадную загрузку (eager loading):
python
# Исправленный вариант с join
users = session.query(User).options(joinedload(User.posts)).all() # 1 запрос с JOIN
for user in users:
print(user.posts) # Данные уже загруженыВ Django ORM аналогично можно использовать select_related (для ForeignKey) или prefetch_related (для ManyToMany).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы