最近有使用TP开发。对->with和->withJoin这样的关联预载入感到不解,现记录总结如下:
关联查询的预查询载入功能,解决了性能与查询的之间的最优化选择问题,主要解决了N+1次查询的问题,这里举一个例子,查询3个结果,会进行4次查询。
如果使用关联预查询功能,对于一对一关联来说,只有一次查询,对于一对多关联的话,就可以变成2次查询,有效提高性能。
也可以支持嵌套预载入,例如:
V5.0.7版本以上,支持使用数组方式定义嵌套预载入,例如下面的预载入要同时获取用户的Profile关联模型的Phone、Job和Img子关联模型数据:
如果要指定属性查询,可以使用闭包查询: