Обращение к бд
отдельных запросов.
Цель выбрать все данные для текущего документа.
Суть вопроса, что меня собственно и тревожит по нехватке опыта, при одном запросе будет выбираться много данных, которые по идее находятся в памяти, и может привести к её исчерпанию.
Если разбить на несколько подзапросов, то в памяти будет только результат выборки каждого, что мне кажется экономнее, но при этом количество обращений к бд увеличивается, и повышает на неё загрузку.
В общем правильно ли понял принцип работы :eek: или вообще все не правильно.
Смотря сколько данных. Надо смотреть и оценивать - в каких-то случаях вернее одним запросом вытащить, в каких-то несколькими. По мне, так чаще всего кошерно доставать только те данные, которые прям сейчас будет видеть юзер. Одним запросом. Но я тоже неопытный чел, меня нельзя слушать. :)
Четкого ответа нет. Всё зависит от задачи и от объема данных и нагрузки на сайт.
Я для того что бы выбрать самый оптимальный вариант запросов к БД использую ключевое слово EXPLAIN перед селектом, он показывает к-во записей с которым этот запрос будет работать, чем меньше тем лучше. Также кроме этого он показывает как идет выборка, по каким полям и ключевые ли они.
Второй параметр который я смотрю так это время выполнения запроса.
Если у Вас очень большая нагрузка из-за запросов к БД используйте кэширование.
Под мало подразумевается ограниченное или заранее известное число: товары в одной накладной или заказе -- мало, все сообщения одного пользователя -- много, несмотря на то, что у большинства пользователей не более десятка сообщений.
Общая стратегия при работе с любой БД: много полей -- конечные данные, много записей -- основые операции, каждая из которых требует отдельной реализации.