總結 Django ORM 效能優化建議

2021-10-01 03:18:33 字數 1398 閱讀 6637

本文著重講解對 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地方 打上每條訊息的消耗 這個能快速定位到 哪些函式消耗的比較高 第二 在遊戲主迴圈中,打上沒幀的消耗 如果消耗是穩定網 的 說明一定有物件建立了沒有刪掉 並且這個物件還在 主 迴圈中 可以檢查一下 註冊的各地地方的定時器 陣列是否有物...