管理大量数据的最佳数据库解决方案

3

我需要设计一个交通数据库,其中包括来自不同城镇(8个城镇)的数据,在每个城镇中以2MB/10分钟的速度记录24小时。所有城镇的入站数据都是相同的。所以我的第一个问题是:在性能方面什么更好:为所有城镇设计一个带有多个表的数据库(每个城镇一个表),还是设计多个数据库(每个城镇一个数据库)?我的第二个问题是:对于这种情况,最好的数据库管理系统是MySQL、Postgres、Oracle还是其他系统?


1
这个问题可能会被关闭,因为它是主观的。当询问这种没有一个"正确"答案的问题时,请在编写问题时勾选"社区维基"框。 (你现在可能仍然可以返回并执行此操作。) - T.J. Crowder
一个带有adodb.dll的Excel电子表格。;-P - Sky Sanders
你的硬件预算是多少?你要保留数据多长时间? - KM.
2个回答

3
你每天收到的数据量很大(约5GB),但实际插入行数却相当低。因此,您需要设计物理模型以使数据库存储管理变得简单且查询高效。
每个城镇都有一个单独的数据库只有在您将每个数据库放在单独的服务器上时才有意义。但是,由于您每10分钟仅需要处理8个插入操作,所以您不需要负载平衡。另一方面,这种架构将把每个比较一个城镇与另一个城镇的查询转换为分布式查询。
如果大多数查询限制为来自某个城镇的数据而不是比较城镇,则在同一数据库中每个城镇拥有一个表可能会为您带来一些性能优势。但我不想押太多的钱。即使它确实有效,也可能会使其他类型的查询更加困难。
考虑到所有城镇的数据都相同,我更喜欢使用具有区分列(TOWN_ID)的单个表。尤其是如果我有钱购买带有分区选项的Oracle许可证的话。

0

每个城镇使用不同的数据库可能很难维护,使用不同的表也是如此。如果您从未必须比较城镇,则可能可行,但迟早我会打赌要比较来自不同城镇的数据。

分区数据是正确的方法。任何支持数据分区的数据库,例如Oracle或SQL Server都可以正常工作。不确定Postgre或Mysql是否支持此功能,您需要咨询熟悉这些数据库的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接