我需要从数据库中获取大约30k的记录,以在刀片和PDF打印中显示ALL
我试过下面的方法,但每一个都有问题
1-我已经使用paginate(),它在刀片中工作正常,但当我需要使用PDF将其全部打印在纸上时,我只能得到第一页200条记录
$accounts = Acc_account::where('cat', 2)->paginate(200)
2-我已经使用了chunk(),但我不能在刀片中使用它
$accounts = Acc_account::where('cat', 2)->chunk(200, function (account) {
foreach ($accounts as $account) {
//
}
}); ;
3-我已经使用了get()和all(),但是因为数据很大,我得到了500个错误
1条答案
按热度按时间fhg3lkii1#
为了获得更好的性能,可以使用
cursor
而不是chunk
或all
。查询将是这样的:$accounts = Acc_account::where('cat', 2)->cursor();
或者您可以使用LazyCollection
来处理内存问题。请注意,所有这些方法并不能保证完全解决你的问题,因为我不认为大数据将是一个很好的解决方案的PDF也许Excel或CSV会更好。