Выбор должен быть в порядке. В последний раз, когда я проверял, весь набор записей (и все его данные) не загружается в память при запросе к БД.
Если это как-то не так и занимает все ОЗУ в известном юниверсе, выполните запрос, чтобы просто получить идентификаторы, а затем отметьте идентификаторы, получая индивидуальные записи. Очень, намного медленнее, но это должно ограничивать использование оперативной памяти.