Django的 select_related 和 prefetch_related 函數對 QuerySet 查詢的優化 引言 在數據庫存在外鍵的其情況下,使用select_related()和prefetch_related()很大程度上減少對數據庫的請求次數以提高性能 1.實例准備 ...
一:介紹 select related函數: 使用該函數的,他的返回值是一個和他相關聯的對象新Queryset對象的集合。如果填寫第二個參數的話,他必須是外鍵關聯的對象。 有如下表結構: 簡單插入數據: book表 author表: select related 函數:作用當我們在查詢帶有外鍵關聯的表的對象的時候,正常查詢是分 次查詢: 比如上面的表結構:查詢evil的對應的書籍。 首先我們在au ...
2016-11-28 15:16 0 1800 推薦指數:
Django的 select_related 和 prefetch_related 函數對 QuerySet 查詢的優化 引言 在數據庫存在外鍵的其情況下,使用select_related()和prefetch_related()很大程度上減少對數據庫的請求次數以提高性能 1.實例准備 ...
Django是個好工具,使用的很廣泛。 在應用比較小的時候,會覺得它很快,但是隨着應用復雜和壯大,就顯得沒那么高效了。當你了解所用的Web框架一些內部機制之后,才能寫成比較高效的代碼。 怎么查問題 Web系統是個挺復雜的玩意,有時候有點無從下手哈。可以采用 自底向上 的順序,從數據存儲一直 ...
參考鏈接: https://blog.csdn.net/secretx/article/details/43964607 在數據庫有外鍵的時候,使用select_related()和prefech_related()可以很好地減少數據庫請求的次數, 從而提高性能 假定一個個 ...
在前面教程中小編我已經介紹了Django的Queryset特性及高級使用技巧,今天我們再來學習兩個非常重要的查詢方法select_related和prefetch_related方法,看看如何使用它們避免不必要的數據庫查詢。高手過招,只差分毫。專業和業余之前的區別就在細節的處理上。為了讓大家更直 ...
閱讀博客http://blog.jobbole.com/74881/的筆記 在數據庫有外鍵的時候,使用select_related()和prefetch_related()可以很好的減少數據庫請求的次數,從而提高性能. 下面是數據庫設計圖 models.py如下: from ...
().defer("name") 3.主動連表查詢selected_related,從而優化查詢性能, ...
對於多對多字段(ManyToManyField)和一對多字段, 可以使用prefetch_related()來進行優化 prefetch_related()和select_related()的設計目的很相似,都是為了減少SQL查詢的數量,但是實現的方式不一樣。后者是通過JOIN語句,在SQL查詢 ...
實例: 創建表,表都是一對一,一對多 2.對於一對一字段(OneToOneField)和外鍵字段(ForeignKey),可以使用select_related 來對QuerySet進行優化,在對QuerySet使用select_related()函數后,Django會獲取相應外鍵 ...