Хотя ваш пример не приносит прибыли от yield
, ответ на ваш вопрос таков: это зависит.
Если вы держите в своем объекте указатель на результат, вы можете получить, если вместозагружая все записи в свойство, вы выдаете их.
Существуют также ORM, которые собирают реляционные данные на лету, так что, имея определенную связь между таблицами, они получают полный результат из таблицы 1, а затем строятОтдельный выбор для деталей таблицы 2, если это необходимо. В этом случае вы должны получать прибыль, особенно если вы пытаетесь отобразить коллекцию, достаточно большую, чтобы использовать всю память вашего процесса. Это возможно, потому что базы данных имеют свои внутренние «курсоры» для чтения данных назад и вперед, поэтому, если вы вместо загрузки всех данных в память используете эти курсоры, вы можете обрабатывать намного больше данных, чем сохранит ваша память. И доходность оказывается очень полезной, чем.
Тем не менее доходность не так уж полезна с ORM, потому что большинство популярных ORM созданы также для довольно оптимального использования ресурсов. В вашем случае я бы скорее сосредоточился на правильном использовании ваших ORM, чем на использовании причудливых техник.