目錄
概要
場景
設計思路
小結
概要
公開的資料顯示,數據庫粒度是:“
在數據庫領域,特別是數據倉庫的設計中,粒度是一個核心概念,它直接影響到數據分析的準確性和存儲效率。粒度的設定涉及到數據的詳細程度和精度,是數據倉庫設計中的一個重要方面。細化程度越高,粒度級就越小,反之則粒度級越大。”
看著特別抽象,這里結合具體項目設計思路去講解。
場景
場景1:庫存。對于業務量非常大的進貨和銷售場景,如果想查詢某件產品的庫存數據,最直接的處理就是從出入庫明細里進行統計。這種統計如果十分頻繁,效率問題會影響用戶體驗,也許軟件系統交付之初看不出效率問題,但系統使用超過幾個月后的效率,很難預測。
場景2:某全球性的教育數據普查平臺。這種平臺數據量增長也十分可觀,用戶關心更多的是統計數據,如查詢某國中文師資情況,都是關心統計數字。當數據量增長到系統變慢時,硬件的升級也只是緩兵之計,解決不了長久問題。
設計思路
- 一般采取多粒度的數據庫表設計,通常是兩級粒度。大粒度表保存了統計結果,以備隨時提供給用戶,細粒度保存了明細。比如庫存,庫存明細表無論入庫或者出庫,只要發生一筆,就會相應地同時在大粒度表的統計結果上做修改。可以做到實時。
- 業務邏輯如果非常復雜,可以采取多粒度數據庫表設計,同時在系統沒有交易發生時進行統計。就是錯峰計算。
小結
此類設計思路很多場景下都會遇到,實際應用的時候還要綜合考慮其他因素靈活設計。