Встречается на собеседованиях • сегодня
Что такое проблема N+1 в ORM
Проблема N+1 возникает, когда ORM делает множество запросов к БД вместо одного оптимального. Например, при загрузке связанных данных сначала выполняется 1 запрос для основной сущности, а затем N запросов для каждой связанной записи.
python
# Проблемный пример (Django ORM)
books = Book.objects.all() # 1 запрос
for book in books:
print(book.author.name) # N запросов (по одному на каждую книгу)Решение - использовать select_related (для ForeignKey) или prefetch_related (для ManyToMany):
python
# Оптимальное решение
books = Book.objects.select_related('author').all() # 1 запрос с JOIN
for book in books:
print(book.author.name) # Данные уже загруженыПроблема характерна для всех ORM (SQLAlchemy, Django ORM и др.) и приводит к значительному падению производительности при работе с большими наборами данных.

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