我必须设计一个交通数据库,其中包括来自不同的城镇(8个城镇)在10分钟内每个城镇24小时内2mb的数据。传入的数据对于所有城市都是相同的。所以我的第一个问题是在性能方面哪个更好:为所有城镇设计一个具有多个表的数据库(每个城镇一个表)还是设计多个数据库(每个城镇一个数据库)?我的第二个问题是,对于这种情况,最好的数据库管理系统是什么? MySQL、Postgres、Oracle还是其他?
发布于 2010-02-16 21:58:19
您每天接收的数据量相当大(~5 5GB),但插入的行数实际上相当少。因此,您需要设计物理模型来简化数据库存储管理并提高查询效率。
只有当您打算为每个数据库配备一台服务器时,每个城镇才有一个单独的数据库。但是您不需要负载平衡,因为您只需要每十分钟处理八次插入。另一方面,该体系结构将把每个将一个城镇与另一个城镇进行比较的查询转换为分布式查询。
如果您的大多数查询仅限于来自某个城镇的数据,而不是比较城镇,那么在同一数据库中每个城镇有一个表可能会给您带来一些性能优势。但我不想在这上面下太多的赌注。即使它确实起作用了,也可能会使其他类型的查询变得更加困难。
考虑到所有城镇的数据都是相同的,我更喜欢的选择是一个具有区分列(TOWN_ID)的表。特别是如果我有足够的钱购买带有分区选项的Oracle许可证的话。
发布于 2010-02-17 00:12:09
每个城镇的不同数据库可能很难维护,不同的表也是如此。如果你永远不需要比较城镇,那么它可能是可行的,但迟早我会打赌必须比较不同城镇的数据。
对数据进行分区是可行的。Anty数据库支持数据分区,如Oracle或SQL Server,可以很好地工作。不确定Postgre或Mysql是否支持这一点,你必须询问更熟悉这些数据库的人。
https://stackoverflow.com/questions/2272273
复制相似问题