1. 程式人生 > >高併發大資料量的資料庫的設計與優化

高併發大資料量的資料庫的設計與優化

一、資料庫結構的設計。

      資料庫模型設計的不合理,不僅會導致客戶端和服務端的程式設計和維護困難,而且會影響到系統實際執行的效能。在系統開始實施之前,完備的資料庫模型的設計是必要的。

      在一個系統分析設計階段,由於資料量小,系統負荷低,我們往往只注重功能的實現,而很難注意到效能的薄弱之處。等系統投入運營一段時間後,才發現系統性能在降低,這個時候再去提高效能則往往需要花費更多的人力物力,所以在整個系統設計之初,我們必須考慮在高併發大資料量的情況下,系統可能面臨的極端問題。

      為了保證資料的一致性和完整性,在邏輯設計的時候往往會設計很多的表間關聯,儘可能的降低資料冗餘,但是對於多表之間的關聯查詢,尤其是大資料表,其效能將會降低,同時客戶端的程式設計難度也隨之提高,為了提高系統的響應時間,合理的資料冗餘也是必要的,設計人員在系統設計階段應根據系統操作的型別、頻率加以均衡考慮。

     表的設計具體需要注意的問題:

      1、資料行的長度不要超過8020個位元組,如果超過這個長度的話物理頁中這條資料將會佔用兩行從而造成儲存碎片,降低查詢效率。

      2、能夠使用數字型別的欄位儘量選用數字型別而不要用字串型別,因為這會降低查詢和連線的效能,並會增加儲存開銷。這是因為引擎在處理查詢和連線的時候會逐個比較字串中的每一個字元,而對應數字型別而言只需要比較一次就夠了。

       3、對於不可變字元型別char和可變字元型別varchar,都是8000位元組,char查詢速度快,但是耗儲存空間,varchar查詢速度相對慢一些,但是節省儲存空間。在設計欄位的時候可以靈活選擇。

       4、欄位的最大長度在滿足可能的需要的前提下,應怪儘可能設的短一些,這樣能夠提高查詢的效率,而且在建立索引的時候也可以減少資源的消耗。

二、查詢的優化。

      在保證功能實現的前提下,儘量減少對資料庫的訪問次數;通過搜尋引數,儘量減少對錶的訪問行數,最小化結果集,從而減輕網路負擔;