Я думаю, что это может помочь людям получить доступ к языкам, которые поддерживают извлечение данных через массивы или перечислители.Потому что это как раз и есть разница.
. Для .NET будет такая же разница, как и GetDirectories (store_results) против EnumerateDirectories (use_results) (и File /DbResult / синтаксический анализ CSV / эквиваленты синтаксического анализа XML).
Вариант перечислителя использует меньше (PHP) клиентской памяти и может асинхронно извлекать следующую строку в фоновом режиме, пока текущая строка обрабатывает, что делает ее как большей памятью, так и обработкойвремя эффективно на стороне клиента.За счет более длительного использования (SQL) ресурсов сервера (так как набор результатов не был полностью передан).
В свою очередь, способ get / array будет извлекать данные в одной операции блокировки, занимая большепамять на стороне клиента для более раннего освобождения памяти БД.
Лично я бы по умолчанию выбрал не-Enumerator Way, если только у вас не возникли проблемы с (клиентской) памятью.
В .NET вы должны использоватьСпособ перечисления, если вы столкнетесь с лимитом 2/3 ГиБ для процессов x32.Особые EnumerateLines для файлов важны здесь.С результатами БД для начала не должно случиться.Результат в 2 ГБ БД либо way недофильтрован (выполните дополнительную фильтрацию в Query), либо содержит много BLOB-объектов (которые следует загружать по частям или даже, если возможно, браузер извлекает через обработчик http).