用于海量数据的 Laravel 惰性集合

标签 laravel laravel-6

我正在从表中查询一个大型数据集,然后通过循环迭代创建一个 json 文件。

$user = App\User::all();

foreach($user as $val){
  // logic goes here for creating the json file
}

现在我面临的问题是,当遍历循环时它正在消耗内存并且我收到错误“允许的内存大小耗尽”。而且服务器的 cpu 使用率变得如此之高。 我的问题是我应该如何使用 laravel 惰性集合来解决这个问题。我已经阅读了官方文档,但找不到方法。

最佳答案

只需将 all 方法替换为 cursor 方法即可。

$user = App\User::cursor();

foreach($user as $val){
  // logic goes here for creating the json file
}

有关可链接的方法的更多信息,请参阅官方 documentation

关于用于海量数据的 Laravel 惰性集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58948807/

相关文章:

docker容器中的laravel队列服务

php - 自动创建 Laravel 项目失败,错误 : TTY mode requires/dev/tty to be read/writable

laravel - 按关系表列中值的总和排序

php - 当我尝试在我的项目 laravel 6.x 上使用 redis 时,它显示此错误消息

laravel - 使用 Laravel Passport 登录 3rd 方网站

mysql连接三个表,同一个表两次

css - 响应类在 laravel 5.3 中不起作用

javascript - 如何修复 Process 类依赖于 proc_open,该类在您的 PHP 安装中不可用

php - 如何在 Eloquent ORM 中创建 isAuthorized() 方法?

php - Laravel 6 : A facade root has not been set