存储趋势数据的最佳方法是什么?

Aar*_*ray 7 php mysql storage trending

我目前正在构建一个应用程序,我正在为(目前)大约15,000种产品导入统计数据.目前,如果我要从一个来源为每天的统计数据维护一个数据库表,那么每天将增加15,000行数据(假设每行5-10个字段主要是浮点数,int).显然每年将500多万条记录等同于一张表.

这并不像我想到从其他来源引入数据(因此每个新来源增加500万条记录的数据库).

现在数据是基于统计/趋势的数据,并且每条记录每天基本上写入1次,并且读取数量很多.出于动态报告和绘图的目的,我需要根据规则(日期范围,值范围等)快速访问数据子集.

我的问题是,这是存储数据的最佳方式(MySQL InnoDb表),还是有更好的方法来存储和处理统计/趋势数据?

此时我抛出的其他选项:1.多个数据库(每个产品一个),每个数据源都有单独的表.(即数据库:产品A,表(一个或多个):Source_A,Source_B,Source_C)2.一个数据库中,多个表(每个产品/数据源)(即数据库:产品信息,表(一个或多个):ProductA_SourceA,ProductA_SourceB等)3.factual数据库中的所有或特定产品信息以及statisticalcsv,xml,json,(平面文件)中不同目录中的所有数据.

到目前为止,这些选项都不是很易于管理,每个选项都有其优缺点.在进入alpha开发阶段之前,我需要一个合理的解决方案.

srk*_*Z84 2

您可以尝试使用基于列的数据库。这些类型的数据库更适合您所描述的那种分析查询。有几种选择:

http://en.wikipedia.org/wiki/Column-oriented_DBMS

我们在 InfiniDB 方面拥有良好的经验:

http://infinidb.org/

Infobright 看起来也不错:

http://www.infobright.com/

InfiniDB 和 Infobright 都有免费的开源社区版本,因此我建议使用它们来获得一些有关您可能获得的性能优势的基准。

您可能还想考虑对数据进行分区以提高性能。