问题是,我有一个销售信息表,其中包含销售信息,其中有列(主键ID、产品名称、产品ID、商店名称、商店ID、销售日期)。我想做分析,如钻研和深入商店/产品/销售日期。
我在考虑两种设计方案,
为了有更好的分析性能,我听说雪花模型更好。但是,为什么从数据库设计的角度看,它比索引更好呢?
谢谢你,林
发布于 2013-01-13 04:38:16
了解应用程序的使用模式和您想要优化的内容是很重要的。以下是选择一个而不是另一个的几个理由。
归一化雪花职业:
查询速度更快,磁盘和内存需求更低,。由于每个规范化行只有较短的键而不是较长的文本字段,因此您的主要事实数据表变得小得多。即使使用索引(除非查询可以由索引本身直接回答),也经常需要部分表扫描,而较小的数据意味着磁盘读取较少,访问速度更快。
更容易修改和更好的数据完整性。比如说一家商店改名了。在雪花中,您更改一行,而在大型非规范化表中,每次出现时都必须更改它,并且最终会出现拼写错误和多个同名变体。
非正态化宽表专业人员:
更快地加载单个记录。当您通常只加载单个记录或少量记录时,将所有数据放在一行中只会导致一个缓存丢失或磁盘读取,而在雪花中,DB可能必须从不同磁盘位置的多个表读取数据。这更像是NoSQL数据库存储与键关联的“对象”的方式。
https://stackoverflow.com/questions/14300643
复制相似问题