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

Работал ли с prefetch

Да, работал. Prefetch в Django используется для оптимизации запросов к БД, уменьшая количество SQL-запросов при обращении к связанным объектам.

Пример:

python
# Без prefetch - 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

**Нюансы:**  
- `prefetch_related` эффективен для `ManyToMany` и `ForeignKey` (обратные связи).  
- Для `ForeignKey` (прямые связи) лучше использовать `select_related`.  
- Можно кастомизировать через `Prefetch()` для сложных случаев.  

**Важно:** Prefetch не уменьшает общее количество строк в БД, но сокращает количество запросов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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