Laravel分页是如此缓慢

时间:2019-02-08 15:01:03

标签: laravel laravel-5 eloquent laravel-5.2 laravel-5.1

我有一个分页问题,​​它在超过25K行的大数据中是如此之慢 我尝试使用以下方法将用户保存的产品保存在数据库中:

$products = Item::has('product_save');

我添加了相同的条件...

$products = $products->where('active', 0);

我使用此行进行分页:

$products = $products->paginate(20);

所有查询花费0.06865秒。 却慢了4.9秒! 我怎么能使它很快?

1 个答案:

答案 0 :(得分:0)

您在注释中问“我如何才能从产品中选择p。* FROM产品作为p,product_saves作为s,其中s.user_id = 4和p.id = s.product_id”。答案发布在下面:

Item::with('product_saves')->whereHas('product_saves', function($q){ 
    $q->where('user_id', 4)
});

and p.id = s.product_id应该定义为product_saves关系,如果没有,则应为此自定义关系。这将渴望加载查询并将您的商品限制为仅具有product_saves关系的商品,并确保product_saves关系的user_id为4。