Laravel Утилита Chunking Results - PullRequest
       0

Laravel Утилита Chunking Results

0 голосов
/ 29 февраля 2020

Согласно Laravel Документации

Если вам нужно работать с тысячами записей базы данных, рассмотрите возможность использования метода чанков. Этот метод извлекает небольшой фрагмент результатов за раз и передает каждый фрагмент в замыкание для обработки. Этот метод очень полезен для написания команд Artisan, которые обрабатывают тысячи записей. Например, давайте поработаем со всей таблицей пользователей, состоящей из 100 записей одновременно:

DB::table('users')->orderBy('id')->chunk(100, function ($users) {
    foreach ($users as $user) {
        //
    }
});

Это должно сократить время ожидания?

Я не вижу, насколько полезна эта функция

1 Ответ

1 голос
/ 29 февраля 2020

Chunking позволяет разбить большой запрос и последующую задачу обработки на повторяющийся шаг.

Самое распространенное применение этой техники - избегать ограничений памяти. Если вы загружаете сотни тысяч строк из базы данных и затем выполняете процесс их преобразования, это может отнять много памяти и очень легко выйти за пределы, определенные в php .ini.

В зависимости от контекста, вы можете просмотреть sh результаты, которые будут отображаться на экране, как только заканчивается каждый блок, что означает, что вы сократили время ожидания начальных результатов, в то время как общее время обработки, вероятно, увеличилось, тогда как уведомления о результатах могли бы приходить по одному куску за раз.

...