我目前正在构建一个应用程序,我正在导入约15,000个产品的统计数据。目前,如果我为每个来源的每天统计数据维护一个数据库表,每天将增加15,000行数据(每行主要为浮点数、整数等5-10个字段)。显然,这意味着每年向一个表中插入超过500万条记录。
这并不让我太担心,因为我担心从其他来源带来数据(从而使数据库的大小增加500万条记录,每个新来源都是如此)。
现在,数据是基于统计/趋势的数据,并且基本上每个记录每天只有1次写入,但会有很多读取。但是,为了进行即时报告和图形化,我需要根据规则(日期范围、值范围等)快速访问数据子集。
我的问题是,这是存储数据的最佳方式(MySQL InnoDb表),还是有更好的方法来存储和处理统计/趋势数据?
此时我考虑的其他选项: 1.多个数据库(每个产品一个),其中每个数据源都有单独的表。 (例如数据库:ProductA,表:Source_A、Source_B、Source_C) 2.一个数据库,多个表(每个产品/数据源一个) (例如数据库:Products,表:ProductA_SourceA、ProductA_SourceB等) 3.数据库中包含所有“事实”的或特定产品信息,而所有的统计数据在csv、xml、json(平面文件)中以分离目录的形式存储。
到目前为止,这些选项都不是很可管理,每个选项都有其优缺点。我需要在进入开发阶段之前找到一个合理的解决方案。
这并不让我太担心,因为我担心从其他来源带来数据(从而使数据库的大小增加500万条记录,每个新来源都是如此)。
现在,数据是基于统计/趋势的数据,并且基本上每个记录每天只有1次写入,但会有很多读取。但是,为了进行即时报告和图形化,我需要根据规则(日期范围、值范围等)快速访问数据子集。
我的问题是,这是存储数据的最佳方式(MySQL InnoDb表),还是有更好的方法来存储和处理统计/趋势数据?
此时我考虑的其他选项: 1.多个数据库(每个产品一个),其中每个数据源都有单独的表。 (例如数据库:ProductA,表:Source_A、Source_B、Source_C) 2.一个数据库,多个表(每个产品/数据源一个) (例如数据库:Products,表:ProductA_SourceA、ProductA_SourceB等) 3.数据库中包含所有“事实”的或特定产品信息,而所有的统计数据在csv、xml、json(平面文件)中以分离目录的形式存储。
到目前为止,这些选项都不是很可管理,每个选项都有其优缺点。我需要在进入开发阶段之前找到一个合理的解决方案。