Встречается на собеседованиях • сегодня
Знаешь ли в Django методы select_related и prefetch_related
Оба метода используются для оптимизации запросов к БД, но работают по-разному.
select_related создаёт SQL JOIN и загружает связанные объекты за один запрос. Подходит для ForeignKey и OneToOne полей.
python
# Загружает автора вместе с книгой за один запрос
Book.objects.select_related('author').get(id=1)prefetch_related делает отдельный запрос для каждой связи и "соединяет" результаты на уровне Python. Оптимален для ManyToMany и обратных ForeignKey связей.
python
# Сначала книги, потом их жанры (2 запроса)
Book.objects.prefetch_related('genres').all()Ключевые различия:
select_related- JOIN в SQL,prefetch_related- отдельные запросыselect_relatedдля "один-к-одному",prefetch_relatedдля "многие-ко-многим"select_relatedэкономит время на запросах,prefetch_related- на памяти

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