Сколько запросов создаёт ленивое получение связей

В заданных условиях — 21 запрос: один за заказами и по одному за каждым клиентом. Это характерная проблема N+1.

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

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

В заданных условиях — 21 запрос: один за заказами и по одному за каждым клиентом. Это характерная проблема N+1.

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

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

Условие

ORM сначала загружает 20 заказов одним запросом, затем в цикле для каждого впервые читает ленивую связь customer. Кеш не используется и клиенты разные. Сколько запросов получится?

Ответ

В заданных условиях — 21 запрос: один за заказами и по одному за каждым клиентом. Это характерная проблема N+1.

Количество возвращённых строк зависит от выбранных полей и кардинальности связей, а не только числа запросов. Используйте eager loading, join или отдельную пакетную загрузку клиентов. Проверьте SQL-лог и условия конкретной ORM: identity map, уже загруженные связи и кеш способны изменить фактическое число обращений.

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

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

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

Подробнее