在設計表之初就要考慮資料操作的效能,那麼怎樣才能設計出高效能的資料庫,基於業務來設計是其根本,如果脫離了業務來設計表,就範了『本本主義』錯誤,你就是趙括了
[b]儘量減少null欄位[/b]
如果乙個中有很多欄位是null,或者某兩個字段不能同時有值,說明資料庫設計存在明顯的缺陷。
可能資料輸入時間和地點不同,但最終每個欄位都應該有值的
如果存在大量null值,對查詢會帶來意想不到的結果
我們看下面這個查詢
select * from t_house_recommend where publish_type not in (1, null)
常規情況下 如果publish_type 為 2 應該會查詢出來,事實上返回結果為空
SQL語言藝術
內容介紹 本書分為12章,每一章包含許多原則或準則,並通過舉例的方式對原則進行解釋說明。這些例子大多來自於實際案例,對九種sql經典查詢場景以及其效能影響討論,非常便於實踐,為你的實際工作提出了具體建議。本書適合sql資料庫開發者 軟體架構師,也適合dba,尤其是資料庫應用維護人員閱讀。您現在正在檢...
sql語言藝術2
先定義問題,再解決問題 problem definition before solution 一知半解是危險的。人們常在聽說了新技術或特殊技術之後 有時的確很吸引人 試圖採 用它作為新的解決方案。普通開發者和設計師通常會立即採納這些新 解決方案 直到後來才 發現它們會產生許多後續問題。現成的解決方案...
閱讀 SQL語言藝術》實踐一
摘要 動作豐富的sql語句 action packed sql statements 此節結論 儘量減少過程邏輯出現在sql語句,比如if else之類 能使用一句sql不要分解為過程邏輯,盡量由資料庫系統來提高更高的效率。為了說明這個問題,我簡要測試以下語句 a update tbuser set...