3

我必须设计一个交通数据库,其中包括来自不同城镇(8 个城镇)2mb 的数据,每个城镇 24 小时 10 分钟。所有城镇的传入数据都是相同的。所以我的第一个问题是在性能方面哪个更好:为所有城镇设计一个数据库,有许多表(每个城镇一个表)或设计多个数据库(每个城镇一个数据库)?我的第二个问题是什么是这种情况下最好的数据库管理系统,MySQL、Postgres、Oracle 或其他?

4

2 回答 2

3

您每天收到的数据量相当多(约 5GB),但插入的行数实际上相当低。因此,您需要设计您的物理模型,以使数据库存储管理简单且查询高效。

只有在每个数据库都有一个服务器时,每个城镇都有一个单独的数据库才有意义。但是您不需要负载平衡,因为您只需每十分钟处理八次插入。另一方面,该体系结构会将每个将一个城镇与另一个城镇进行比较的查询转换为分布式查询。

如果您的大多数查询仅限于来自城镇的数据而不是比较城镇的数据,那么在同一数据库中每个城镇有一个表可能会给您带来一些性能优势。但我不想花太多钱在上面。即使它确实有效,它也可能使其他类型的查询变得更加困难。

鉴于所有城镇的数据都相同,我的首选选项是一张具有区分列 (TOWN_ID) 的表。特别是如果我有钱购买带有分区选项的 Oracle 许可证。

于 2010-02-16T13:58:18.977 回答
0

每个城镇的不同数据库可能难以维护,不同的表也是如此。如果您永远不必比较城镇,这可能是可行的,但迟早我会打赌必须比较来自不同城镇的数据。

分区数据是要走的路。支持数据分区的 Anty 数据库(如 Oracle 或 SQL Server)可以正常工作。不确定 Postgre 或 Mysql 是否支持这一点,您必须询问更熟悉这些数据库的人。

于 2010-02-16T16:12:09.303 回答