laravel 懒加载和预加载,n+1问题,with。

本文介绍了Laravel框架中如何通过默认的懒加载机制处理关联查询的n+1问题,以及使用`with`方法优化查询性能。当查询单个分类时采用懒加载,而查询多个分类时推荐使用预加载技术以避免额外的数据库查询。
摘要由CSDN通过智能技术生成

laravel中默认查询是使用懒加载的,比如说查询关联关系的两个表artical和cate,
查询artical后,再指向cate查询,就会生成一条查询语句,如果这个cate查询是在循环内,就会产生n+1问题。

laravel里面使用with来解决这个问题。

n+1问题sql语句:

select * from foo where id = 1 limit 1;
select * from foo where id = 2 limit 1;
select * from foo where id = 3 limit 1;
...

使用with来解决n+1问题生成的语句:

select * from foo where id in(1,2,3);
  • 当只查询一个文章的一个分类时,可以使用懒加载。
  • 当需要查询多个文章的分类时,使用预加载更好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值