《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
关于 LearnKu
如果user表关联了profile表,n+1大概就是在循环里面查关联这样吧
避免n+1用
$users = User::query()->with('profile')->get(),先加载一下关联模型,with只会执行两次查询,一个select * from user,一个select * from profile id in ($user->pluck('id'))这个问题应该是
预加载的问题, 在模型 Model中建立一对多或多对多的关系, 使用预加载 with可以起到优化Sql的作用.如何优化的呢, 看下小demo.
打印出来的日志, 分别是
上面结果是
1+10哦豁, 这个结果是1+1, 噢啦以常用的列表分页查询为例:假设查询A表返回了N条数据,同时需要关联另一个表B的数据。原始的方法是循环遍历A表的N条数据,查询关联的B表数据,产生了N+1条语句。
避免这个问题可以直接使用laravel的with方法,本质上是使用一条whereIn代替N次查询。