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

Использовал ли prefetch

prefetch_related в Django оптимизирует запросы для связанных объектов, уменьшая количество SQL-запросов. Он полезен для ManyToMany и ForeignKey отношений, загружая связанные данные одним запросом.

Пример:

python
# Без prefetch_related — N+1 проблема
books = Book.objects.all()
for book in books:
    print(book.author.name)  # Отдельный запрос для каждого автора

С prefetch_related — 2 запроса

books = Book.objects.prefetch_related('author').all()
for book in books:
print(book.author.name) # Данные уже в кэше

text

**Отличие от `select_related`:**  
- `select_related` работает для `ForeignKey` и `OneToOne`, используя `JOIN`.  
- `prefetch_related` — для `ManyToMany` и обратных `ForeignKey`, выполняя отдельный запрос и объединяя результаты в Python.  

**Важно:**  
- Избегай избыточного префетчинга.  
- Для кастомных менеджеров/кверисетов используй `Prefetch()` для тонкой настройки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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