Ты работал в основном с FastAPI или с Django? Можешь рассказать про select_related и prefetch_related — что из этого что и зачем?

В Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.

Короткий ответ

Что ответить на собеседовании

В Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.

Подробный разбор

Ответ с пояснениями

В Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.

select_related подходит для ForeignKey и OneToOne; prefetch_related — в том числе для обратных и many-to-many связей. Выбор зависит от кардинальности, объёма и дальнейших обращений: prefetch может загрузить слишком много объектов в память, а новый фильтр связанной коллекции не обязан использовать кеш. Про основной опыт с FastAPI или Django отвечайте отдельно и честно. Сам FastAPI не определяет ORM и стратегию загрузки связей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее