Встречается на собеседованиях • сегодня
Использовал ли 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()` для тонкой настройки.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы