本文著重講解對 django orm 效能優化的幾點建議,orm 資料層提供各種途徑優化資料的訪問,如果掌握 django 的優化技巧,開發過程中稍稍留意,後期會省不少的工作量。好文章記得收藏
+點讚+關注
額 !!!
---- nick.peng
資料庫優化技術博大精深,不同的資料庫有不同的優化技巧,但重心還是有規則的。在這裡挑兩點通用的說說:
了解django的querysets物件,對優化簡單程式有至關重要的作用。querysets是有快取的,一旦取出來,它就會在記憶體裡呆上一段時間,盡量重用它。
# 了解快取屬性:
>>
> entry = entry.objects.get(id=
1)>>
> entry.blog # 部落格實體第一次取出,是要訪問資料庫的
>>
> entry.blog # 第二次再用,那它就是快取裡的實體了,不再訪問資料庫
>>
> entry = entry.objects.get(id=
1)>>
> entry.authors.
all(
)# 第一次all函式會查詢資料庫
>>
> entry.authors.
all(
)# 第二次all函式還會查詢資料庫
entry.blog.
id# >>>>>>>>優於
entry.blog__id
# 善於使用批量插入記錄,如:
entry.objects.bulk_create(
[ entry(headline=
"python 3.0 released"),
entry(headline=
"python 3.1 planned")]
)# >>>>>>>>優於
entry.objects.create(headline=
"python 3.0 released"
)entry.objects.create(headline=
"python 3.1 planned"
)# 前者只連線一次資料庫,而後者連線兩次
# 還有相似的動作需要注意的,如:多對多的關係,
my_band.members.add(me, my_friend)
# >>>>>>>>優於
my_band.members.add(me)
my_band.members.add(my_friend)
Django ORM效能優化,資料訪問優化
web系統可以採用自底向上的順序,從資料儲存一直到資料展現,按照這個順序一點一點查詢效能問題。工具解決問題的第一步是找到問題 執行django看到原始sql查詢確保django debug設定為true。然後,就這樣做 python 純文字檢視 複製 12 3 4 5 6 7 fromdjango....
效能優化總結
儘量減少布局的層級,有選擇的使用功能較為複雜,效能較低的viewgroup,如 relativelayout,但推薦使用relativilayout來替換多重巢狀的linearlayout,減少布局層級。推薦使用,和viewstub來布局。避免在view的ondraw中進行大量的操作。主要體現於兩個...
效能優化總結
最近在查效能優化,總結了以下幾條 第一 在接受訊息 socket地方 打上每條訊息的消耗 這個能快速定位到 哪些函式消耗的比較高 第二 在遊戲主迴圈中,打上沒幀的消耗 如果消耗是穩定網 的 說明一定有物件建立了沒有刪掉 並且這個物件還在 主 迴圈中 可以檢查一下 註冊的各地地方的定時器 陣列是否有物...