gpt4 book ai didi

laravel - Laravel 分页中的内存大小错误

转载 作者:行者123 更新时间:2023-12-01 06:28:00 25 4
gpt4 key购买 nike

当我尝试选择一些带有分页连接查询的字段时,它会显示错误,例如
Allowed memory size of 134217728 bytes exhausted (tried to allocate 45797376 bytes)
我的查询是

$price_all = DB::table('model_price')
->join('operator_model','model_price.model_id','=','operator_model.id')
->join('operator_route','operator_model.operator_route_id','=','operator_route.id')
->join('route', 'operator_route.route_id', '=', 'route.id')
->join('operator', 'operator_route.operator_id', '=', 'operator.id')
->select('model_price.id', 'model_price.price', 'route.route_name', 'operator.operator_name')
->paginate(2);

在我的数据库中只存储了 5 条记录。它不是大数据。

当我尝试不分页时,它工作正常。喜欢
$price_all = DB::table('model_price')
->join('operator_model','model_price.model_id','=','operator_model.id')
->join('operator_route','operator_model.operator_route_id','=','operator_route.id')
->join('route', 'operator_route.route_id', '=', 'route.id')
->join('operator', 'operator_route.operator_id', '=', 'operator.id')
->select('model_price.id', 'model_price.price', 'route.route_name', 'operator.operator_name')
->get();

现在我如何优化这个查询。

最佳答案

尝试使用偏移和限制而不是分页。

$price_all = DB::table('model_price')
->join('operator_model','model_price.model_id','=','operator_model.id')
->join('operator_route','operator_model.operator_route_id','=','operator_route.id')
->join('route', 'operator_route.route_id', '=', 'route.id')
->join('operator', 'operator_route.operator_id', '=', 'operator.id')
->select('model_price.id', 'model_price.price', 'route.route_name', 'operator.operator_name')
->skip(0)
->take(2)
->get();

关于laravel - Laravel 分页中的内存大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com