目录
概要
场景
设计思路
小结
概要
公开的资料显示,数据库粒度是:“
在数据库领域,特别是数据仓库的设计中,粒度是一个核心概念,它直接影响到数据分析的准确性和存储效率。粒度的设定涉及到数据的详细程度和精度,是数据仓库设计中的一个重要方面。细化程度越高,粒度级就越小,反之则粒度级越大。”
看着特别抽象,这里结合具体项目设计思路去讲解。
场景
场景1:库存。对于业务量非常大的进货和销售场景,如果想查询某件产品的库存数据,最直接的处理就是从出入库明细里进行统计。这种统计如果十分频繁,效率问题会影响用户体验,也许软件系统交付之初看不出效率问题,但系统使用超过几个月后的效率,很难预测。
场景2:某全球性的教育数据普查平台。这种平台数据量增长也十分可观,用户关心更多的是统计数据,如查询某国中文师资情况,都是关心统计数字。当数据量增长到系统变慢时,硬件的升级也只是缓兵之计,解决不了长久问题。
设计思路
- 一般采取多粒度的数据库表设计,通常是两级粒度。大粒度表保存了统计结果,以备随时提供给用户,细粒度保存了明细。比如库存,库存明细表无论入库或者出库,只要发生一笔,就会相应地同时在大粒度表的统计结果上做修改。可以做到实时。
- 业务逻辑如果非常复杂,可以采取多粒度数据库表设计,同时在系统没有交易发生时进行统计。就是错峰计算。
小结
此类设计思路很多场景下都会遇到,实际应用的时候还要综合考虑其他因素灵活设计。