YII模型操做--关联查询

准备工做:分别建立两个模型:users和orderssql

 users模型:缓存

  

orders模型:性能

 

操做:(注意在控制器中引入须要用到的模型)优化

 

(1).多表查询:一对多it

读取orders的那一句能够优化成:效率

 

(2).多表查询:一对一循环

 

关联查询的性能问题:程序

1.释放缓存:因为关联查询的结果会被缓存,再次查询的时候须要释放缓存:unset($orders);方法

2.例如:若是要读取多个用户的全部的订单(屡次关联查询),会致使查询性能的急速降低;这时候,使用with()方法,将能够大幅提升性能:im

注释:with('orders')方法会将查询到的结果存放在一个临时建立的orders表中,当程序继续往下执行循环查询的时候,会将这个循环查询转换成sql中的in查询,大幅提升了查询效率。

相关文章
相关标签/搜索