YII模型操做--關聯查詢

準備工做:分別建立兩個模型:users和orderssql

 users模型:緩存

  

orders模型:性能

 

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

 

(1).多表查詢:一對多it

讀取orders的那一句能夠優化成:效率

 

(2).多表查詢:一對一循環

 

關聯查詢的性能問題:程序

1.釋放緩存:因爲關聯查詢的結果會被緩存,再次查詢的時候須要釋放緩存:unset($orders);方法

2.例如:若是要讀取多個用戶的全部的訂單(屢次關聯查詢),會致使查詢性能的急速降低;這時候,使用with()方法,將能夠大幅提升性能:im

註釋:with('orders')方法會將查詢到的結果存放在一個臨時建立的orders表中,當程序繼續往下執行循環查詢的時候,會將這個循環查詢轉換成sql中的in查詢,大幅提升了查詢效率。

相關文章
相關標籤/搜索