Laravel 8 使用游标
cursor
方法允许你使用游标遍历数据库,它只执行一次查询。处理大量的数据时, cursor
方法可以大大减少内存的使用量:
foreach (Flight::where('foo', 'bar')->cursor() as $flight) {
//
}
cursor
返回 Illuminate\Support\LazyCollection
实例。 Lazy collections 允许你使用 Laravel 集合中大多数集合方法,而且每次只会加载单个模型到内存中:
$users = App\Models\User::cursor()->filter(function ($user) {
return $user->id > 500;
});
foreach ($users as $user) {
echo $user->id;
}