Если передано три идентификатора товаров и кэш пустой, сколько всего будет запросов к базе данных: 3, меньше или больше?

По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.

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

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

По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.

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

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

По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.

При запросе WHERE id IN (...) все три товара получают одним обращением. При цикле get(id) — обычно тремя. Ленивое чтение дополнительных связей способно добавить N+1-запросы.

Обращения к Redis не нужно считать SQL-запросами к основной БД. Для точного ответа покажите код и настройки eager loading либо измерьте журнал запросов. Пустой кеш означает промах, но не задаёт автоматически стратегию восстановления каждого ключа.

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

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

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

Подробнее