По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.
Если передано три идентификатора товаров и кэш пустой, сколько всего будет запросов к базе данных: 3, меньше или больше?
По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
По трём ID и пустому кешу число SQL-запросов определить нельзя: всё зависит от реализации загрузки. Может быть один пакетный запрос, три отдельных или больше из-за связанных данных.
При запросе WHERE id IN (...) все три товара получают одним обращением. При цикле get(id) — обычно тремя. Ленивое чтение дополнительных связей способно добавить N+1-запросы.
Обращения к Redis не нужно считать SQL-запросами к основной БД. Для точного ответа покажите код и настройки eager loading либо измерьте журнал запросов. Пустой кеш означает промах, но не задаёт автоматически стратегию восстановления каждого ключа.