構建千萬級別用戶的後臺數據庫架構

構建千萬級別用戶的後臺數據庫架構的話題上,具體建議或做法如下所示:

  1> 數據庫的設計開始之前,必須優先進行業務的數據流梳理(註釋:必須儘量考慮應用所有可能的功能模塊),以及對業務優先進行優化和規劃,然後根據數據流和功能 考慮數據庫的結構設計和優化;

  2> 千萬級別用戶量,若是非遊戲行業的產品(SNS遊戲除外),建議考慮用戶數據拆分架構設計,以及考慮後續未來1-2年的承受量,若是SNS平臺必須考慮拆分,除非考慮上SSD、Fusion-io、存儲等更高端的設備,用金錢換時間的方式支持技術改造;

  3> 數據拆分的核心與難處:同一個用戶的數據儘量放一起(拆分規則要儘量簡單可執行),拆分之後用戶關係的數據如何保存的抉擇有多種(存2份或存1份放一個地方),難處數據的分頁,統計合併等;

  4> 要考慮一些冗餘的方式解決SQL性能問題,但是又不能過多引入冗餘而造成IO開銷增加太多,冗餘字段要儘量整型字段;

  5> 數據庫表對象的字段屬性,要儘量考慮數字化,尤其遊戲行業;

  6> 數據庫設計過程中,對於索引組織結構要偏向共同操作最優先,其次應用外部用戶級別的操作性能優先,最後內部用戶的操作,硬儘量隔離,例如:搜索引擎Build操作、內部編輯團隊審覈等操作;

  7> 數據庫要從設計角度規避一些無法通過其他技術手段解決的模糊查詢,類似全文索引的模糊查詢,要走搜索引擎的模式,再通過數據庫讀具體的數據,一些必要的計數類型的數據,適當地考慮緩存;

  8> 重點解決數據庫級別的數據分頁問題,要學會從前端應用用戶的體驗不降低的情況下,達到更高效的數據分頁做法,類如論壇中帖子分樓的做法;

  9> 數據庫的設計必須考慮使用什麼類型配置的物理服務器,核心參數:內存、CPU、硬盤(這個是關鍵:硬盤類型(注: SATA、SAS、SSD)、多少塊盤、轉速、容量,以及做RAID幾),RAID卡內存及RAID寫模式也需要考慮進去,必須結合數據量和讀寫能力要求進行一個預算規劃,不一定超準確,但是要八九不離十;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章