我有一个分页问题,它在超过25K行的大数据中是如此之慢 我尝试使用以下方法将用户保存的产品保存在数据库中:
$products = Item::has('product_save');
我添加了相同的条件...
$products = $products->where('active', 0);
我使用此行进行分页:
$products = $products->paginate(20);
所有查询花费0.06865秒。 却慢了4.9秒! 我怎么能使它很快?
答案 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。