select_related — JOIN на уровне SQL, одним запросом загружает связанные объекты. Работает для ForeignKey и OneToOne. Пример: Article.objects.select_related("author") — один запрос с JOIN. prefetch_related — отдельный запрос для связанных объектов, потом Python соединяет в памяти. Работает для ManyToMany и reverse ForeignKey. Пример: Author.objects.prefetch_related("articles") — два запроса: авторы + статьи. select_related быстрее для to-one связей, prefetch_related — для to-many. Без них — N+1 problem.
В чём разница между select_related и prefetch_related?
Middle
424 просмотровAFK Offer AI
Как работают async/await?