簡明的數據庫設計模式

     設計一個數據庫存儲模式時,要仔細分析數據模式,不要把所有的數據都放在一起。否則對系統的可用性,高效能,擴展性都會有嚴重的影響。當然你設計的系統非常小,完全可以用最簡單的方法。

 

要通過對業務的熟練,從不同的角度對數據進行多維度分析,一般可以從如下幾個方向分析:

 

1.       數據流向

2.       數據訪問特點

3.       數據量的大小

4.       數據的增長量

5.       數據的生命週期

 

根據以上數據特點,綜合數據模式對數據表進行分類:

 

1.       恆數表

2.       遞增表

3.       流水錶

4.       狀態表

5.       核心表

6.       過程表

 

在我們進行大數據量系統的模型設計時,根據不同的數據表,必須要遵循這幾個要點。

 

 

核心表:

核心表是系統訪問最頻繁的,在設計時要考慮訪問的代價,一定要遵循範式,注意字段的個數和字段長度,注意範圍查詢。如果核心表的數據量很大的話,要根據分區表或表路由等方式進行數據歸檔,以保證核心表的性能。

 

過程表:

過程表顧名思義是用來記錄某一過程的,一般指數據的生命週期;在設計過程表時要設計一個明顯代表數據生命週期的字段,對於數據倉庫系統更是要合理的利用生命週期字段,可以高效的統計不同生命週期的數據;在設計表時也要考慮增刪改的代價,插入的代價最小,修改需要檢索數據保留修改字段值,刪除要保留整條記錄,代價最爲昂貴。

 

恆數表:

恆數表幾乎很少變化,類似我們使用字典表,在設計這樣的表時,要設計好表的參數,較小的表就不建議建立索引。

 

遞增表:

遞增表的增長是很快的,並不是所有的數據都是常用的,所以分區的大小要儘量均衡,嚴格區分核心數據和過程數據,索引的鍵值選擇性儘量高,謹慎使用複合索引,按照關聯關係設計合適的分區和索引。

 

流水錶:

流水錶類似記錄log,記錄些流水信息,流水錶數據量一般都很大,信息幾乎沒有變更。在設計時要注意分區的粒度和選擇,一般不建議建立太多的索引。

 

狀態表:

狀態表一般指記錄某一行爲的狀態過程,生命週期很短,很容易和過程表混淆。可以簡單區別它們,狀態表是動作行爲的軌跡;過程表是數據的生命週期。


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