在数据库中执行聚合/非规范化的最佳方法是什么?

时间:2012-09-20 09:39:38

标签: database aggregation denormalization

我们有一个存储点击次数,观看次数和目标的数据库。您可以猜测数据库中的点击次数达到数百万,因此我们开始聚合数据以获得更快的统计数据。此时我们删除所有记录并在聚合表中编写新记录(您可以正确猜测您的mysql密钥快速上升)但这是汇总统计信息而不会出现任何错误的最简单方法。

我在互联网上搜索数据库聚合。就像如何存储/非规范化数据一样,您可以快速选择正确的数据,而无需尊重多个表格。但我没有找到答案。

我也猜测mysql不是用于存储聚合数据的正确数据库,因为聚合数据将快速增长并且可以从开始到结束选择(例如选择整年的统计数据)。我的结论是对的吗?如果是这样,你会推荐我什么数据库?

我也将多个表格中的数据拆分为多个解决方案,但我不确定这是不是很聪明。

我的问题是:

  • 您使用什么聚合技术来保持聚合表的正确性?
  • 哪种数据库最适合存储聚合?
  • 我应该在多个表上拆分聚合吗?或者我应该制作一个可以处理多种类型数据请求的通用表吗?
  • 你如何处理速度问题?
  • 数据聚合是否有不同的名称?

我很抱歉这个冗长的问题:)。我搜索了SO和互联网,并没有找到任何关于这些问题的好答案。

1 个答案:

答案 0 :(得分:-1)

  

哪种数据库最适合存储聚合?

如果我理解你对“聚合”的定义,我会说你正在删除所有关系的东西,所以你可能正在瞄准一些noSQL sollution。

  

我应该在多个表上拆分聚合吗?或者我应该制作一个可以>处理多种类型的数据请求的通用表吗?

不可能说,取决于你想要什么。你正在做的是去标准化,这样你就可以更快地获得数据。但是,如果你非常规化,你就找不到合适的数据。所以每种情况都有所不同。

  

你如何处理速度问题?

再一次,不可能说。粗略地:找出导致它们的原因,并解决问题。

  

数据聚合是否有不同的名称?

看起来你正在构建一个“数据仓库”?有关详细信息,请参阅随机互联网(例如http://en.wikipedia.org/wiki/Data_warehouse)。