三十、PHP框架Laravel学习笔记——模型的预加载
生活随笔
收集整理的這篇文章主要介紹了
三十、PHP框架Laravel学习笔记——模型的预加载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.預加載
//獲取所有書籍列表
//遍歷每一本書
foreach ($books as $book) { //每一本書的關聯用戶的姓名 DebugBar::info($book->user->username); }
PS:通過調試器 Debugbar 中 SQL 語句的分析,發現包含十多條 SQL 語句;
PS:原因是關聯查詢時,每遍歷一次就會執行一遍 SQL 語句,導致性能欠佳;
PS:所謂 N+1 條,就是起初獲取全部數據的 1 條和,遍歷的 N 條;
//with 關鍵字預載入
PS:此時的 SQL 執行數目為:1+1 條;也支持數組多個關聯 with[‘book’,‘prifile’];
PS:預加載也可以設置顯示的列;
//預載入設置指定的列
PS:此時就可以像最初那樣寫代碼,而不需要使用 with()方法了;
PS:預載入篩選不可以使用 limit、take 方法;
有時,可能會產生邏輯判斷是否查詢數據,但預加載會提前關聯執行;
這樣,會導致資源性能的浪費,這時,可以采用延遲預載入;
總結
以上是生活随笔為你收集整理的三十、PHP框架Laravel学习笔记——模型的预加载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chapter7-11_Deep Lea
- 下一篇: Web框架——Flask系列之abort