一 利用標準數(shù)據(jù)庫優(yōu)化技術
為寬城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及寬城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、成都網(wǎng)站制作、寬城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!傳統(tǒng)數(shù)據(jù)庫優(yōu)化技術博大精深,不同的數(shù)據(jù)庫有不同的優(yōu)化技巧,但重心還是有規(guī)則的。在這里算是題外話,挑兩點通用的說說:
索引,給關鍵的字段添加索引,性能能更上一層樓,如給表的關聯(lián)字段,搜索頻率高的字段加上索引等。Django建立實體的時候,支持給字段添加索引,具體參考Django.db.models.Field.db_index。按照經(jīng)驗,Django建立實體之前應該早想好表的結構,盡量想到后面的擴展性,避免后面的表的結構變得面目全非。
使用適當字段類型,本來varchar就搞定的字段,就別要text類型,小細節(jié)別不關緊要,后頭數(shù)據(jù)量一上去,愈來愈多的數(shù)據(jù),小字段很可能是大問題。
二 了解Django的QuerySets
了解Django的QuerySets對象,對優(yōu)化簡單程序有至關重要的作用。QuerySets是有緩存的,一旦取出來,它就會在內(nèi)存里呆上一段時間,盡量重用它。
# 了解緩存屬性: >>> entry = Entry.objects.get(id=1) >>> entry.blog # 博客實體第一次取出,是要訪問數(shù)據(jù)庫的 >>> entry.blog # 第二次再用,那它就是緩存里的實體了,不再訪問數(shù)據(jù)庫 >>> entry = Entry.objects.get(id=1) >>> entry.authors.all() # 第一次all函數(shù)會查詢數(shù)據(jù)庫 >>> entry.authors.all() # 第二次all函數(shù)還會查詢數(shù)據(jù)庫