only與defer
'''
only
只有only括號內的字段在查詢出的物件中,查詢該欄位無需走資料庫,查詢其他字段需要重走資料庫查詢操作
defer:效果與only相反
只有在查詢defer括號內的字段時才會走資料庫查詢操作
'''
select_related與prefetch_related'''
select_related與prefetch_related查詢時均不走資料庫操作,因為資料全都封裝在得到的物件中了
select_related:內部就是聯表操作,將關聯後的大表內的資料全都封裝到物件中
注意:select_related括號內只能一對一或者多對一關係的字段,放多對多關係或者非外來鍵字段就會報錯
prefetch_related:內部就是子查詢,同樣也會將資料全都封裝到物件中
select_related與prefetch_related各有優缺點,具體用誰得結合實際情況
'''
第一正規化(1nf)'''第一正規化書面話:必須保證資料庫表的每一列都是不可分割的基本資料項
大白話:必須保證每張表的每個列都不可再分的
'''按照第一正規化分表:
1nf->表:訂單號、訂單日期、顧客編號、顧客名字、位址、城市、聯絡**、商品編號、商品名、商品**
第二正規化(2nf)'''第二正規化書面話:必須滿足第一正規化
保證每一行都要有唯一標識存在,
這個唯一屬性列被稱為主關鍵字或主鍵、主碼。
實體的屬性完全依賴於主關鍵字。
大白話:必須滿足第一正規化,必須保證每張表內都有主鍵,且非主鍵字段必須依賴主鍵字段
'''1nf->表:訂單號、訂單日期、顧客編號、顧客名字、位址、城市、聯絡**、商品編號、商品名、商品**
按照第二正規化分表:
表2:訂單號、訂單日期、商品編號、商品名、商品**
第三正規化(3nf)'''第三正規化書面話:關係模型滿足第二正規化,所有非主屬性對任何候選關鍵字都不存在傳遞依賴。
大白話:必須滿足第二正規化,必須保證表內的每一列都是與主鍵存在直接聯絡的。
''' 表2:訂單號、訂單日期、商品編號、商品名、商品**
按照第三正規化分表:
3nf->表1:訂單號、訂單日期、顧客編號
表3:訂單號、訂單日期、商品編號
表4:商品編號、商品名、商品**
資料庫查詢優化
方法 1 1.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。步驟閱讀 22.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,如 select id from t where num is...
資料庫查詢優化
本記載,用於保留面對大資料量時,查詢速率待優化,只記錄要點,具體如何操作,還需查詢 1 索引優化 通過建立合理高效的索引,提高查詢的速度.2 sql優化 根據需求,組織優化sql語句,使查詢效率達到最優,在很多情況下要考慮索引的作用 3 水平拆分 如果表的資料量增長特變塊,索引帶來的效能優化可能達到...
資料庫查詢優化
1 對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。2 應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄 如 select id from t where num is null 可以在nu...