Встречается на собеседованиях • сегодня
Как появляется N+1 проблема в ORM
N+1 проблема возникает, когда ORM делает множество запросов к БД вместо одного оптимального. Например, при загрузке списка сущностей и их связанных данных:
python
# Плохой пример: N+1 запросов
users = session.query(User).all() # 1 запрос
for user in users:
print(user.posts) # N запросов (по одному на каждого пользователя)Решение - использовать eager loading (жадную загрузку):
python
# Хороший пример: 1 запрос с JOIN
from sqlalchemy.orm import joinedload
users = session.query(User).options(joinedload(User.posts)).all()
for user in users:
print(user.posts) # Данные уже загруженыПроблема характерна для многих ORM (Django ORM, SQLAlchemy, Hibernate) и возникает из-за ленивой загрузки по умолчанию.

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