Нет смысла что-то объяснять человеку, который пришел поучать с видом знатока. Пойми, мы тут это все уже проходили много лет назад. Впрочем, насчет "одним sql-запросом" отвечу: cache hit/miss ratio.
Да я тут много лет уже)) Что Вы меня за кретина держите? И Как это - нет смысла что-то объяснять? Что за неуважительное отношение?
Про cache hit/miss ratio, да конечно SQL сервер молодец, но вы забываете на время соединения, на проверки состояния таблиц и еще множество накладных ресурсов. Порой в раскрученных движках встретишь и 50 и 200 запросов, когда можно было сделать пару.
Скажем, есть тривиальная задача - вывести товары групп 1,2,3,4, при этом у товаров есть 20 свойств, 10 картинок, 3 склада и 4 типа цен. Собственно разные таблицы.
Все это должно
превратиться в object relation сущности. Что мы можем делать? Мы можем дернуть 50 товаров, дернуть для них 20 свойств, потому еще 10 картинок , склады и типы цен. Все по IN (id). Выход. И это будет хорошо, что если сделают так.
А могут вообще, на каждую сущность товара поставить методы выборки свойств, картинок, складов и т.п.
по первичному ключу / индексу. К чему это приведет? К возрастанию до 300-от запросов на выборку 50 товаров как минимум .
Конечно, утверждая что выборки быстры и проще сделать запрос по первичным ключам/индексам, но почему-то приложение вдруг стало отрабатывать не за 0.05 секунды, а уже 0.5 с 8-ю кратным превышением нагрузки на IO . После этого и начинается, кеши и т.п., хотя можно было просто правильно выстроить логику приложения используя возможности системы.
Хотя можно было просто сделать два хороших SQL запросов, отточенных профайлером до блеска.