注:
在乙個專案實施初始,資料庫的設計非常重要,很多時候,我們只關心和考慮到眼前的功能,而忽略了後續的可維護性和可拓展性,以及還有乙個在大資料時代會遇到的高併發問題。
在設計表結構時要注意以下幾個要點:
1.資料行的長度不要超過8020位元組,如果超過這個長度的話在物理頁中這條資料會占用兩行從而造成儲存碎片,降低查詢效率。
2.能夠用數字型別的字段盡量選擇數字型別而不用字串型別的(**號碼),這會降低查詢和連線的效能,並會增加儲存開銷。這是因為引擎在處理查詢和連線回逐個比較字串中每乙個字元,而對於數字型而言只需要比較一次就夠了。
4.欄位的長度在最大限度的滿足可能的需要的前提下,應該盡可能的設得短一些,這樣可以提高查詢的效率,而且在建立索引的時候也可以減少資源的消耗。
查詢語句優化要點:
1.盡可能使用索引
2.查詢有先後順序,注意把快速條件或者索引查詢放在前面
3.應盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如:
select id from t where num=10 or num=20
可以這樣查詢:
select id from t where num=10
union all
select id from t where num=20
4.要避免在where中使用表示式,這樣將放棄索引,進行全表查詢
資料庫優化設計注意要點
在乙個專案實施初始,資料庫 的設計非常重要,很多時候,我們只關心和考慮到眼前的功能,而忽略了後續的可維護性和可拓展性,以及還有乙個在大資料時代會遇到的高併發問題。在設計表結構時要注意以下幾個要點 1.資料行的長度不要超過8020位元組,如果超過這個長度的話在物理頁中這條資料會占用兩行從而造成儲存碎片...
資料庫高併發
案例一 訂票系統案例某航班只有一張機票,假定有1w個人開啟你的 來訂票,問你如何解決併發問題 可擴充套件到任何高併發 要考慮的併發讀寫問題 問題 1w個人來訪問,票沒出去前要保證大家都能看到有票,不可能乙個人在看到票的時候別人就不能看了。到底誰能搶到,那得看這個人的 運氣 網路快慢等 其次考慮的問題...
高併發大資料資料庫層面的處理
三種併發策略 1.什麼都不做,任由併發產生,以最終提交結果為準。2.開放式併發,衝突產生時,告訴使用者當前資源被占用。3.保守式併發,強制加鎖,只有當前使用者更新提交完畢才能被下乙個使用者占用。保守式併發 保守式併發通常用於兩個目的。第一,在某些情況下,存在對相同記錄的大量爭用。在資料上放置鎖所費的...