我必须设计一个交通数据库,其中包含来自不同城镇(8 个城镇)2mb 的数据,每个城镇 24 小时 10 分钟。所有城镇的传入数据都是相同的。所以我的第一个问题是在性能方面哪个更好:为所有城镇设计一个包含许多表的数据库(每个城镇一个表)还是设计多个数据库(每个城镇一个数据库)?我的第二个问题是什么是适合这种情况的最佳数据库管理系统,MySQL、Postgres、Oracle 还是其他?
最佳答案
您每天接收的数据量相当大 (~5GB),但插入的行数实际上相当低。因此,您需要设计物理模型,使数据库存储管理变得简单且查询高效。
只有在每个数据库有一个服务器的情况下,每个城镇都有一个单独的数据库才有意义。但是您不需要负载平衡,因为您只需每十分钟处理八次插入。另一方面,该体系结构会将每个将一个城镇与另一个城镇进行比较的查询转变为分布式查询。
如果您的大部分查询仅限于来自城镇的数据而不是比较城镇,则在同一个数据库中为每个城镇拥有一张表可能会给您带来一些性能优势。但是我不想在上面投入太多的钱。即使它确实有效,它也可能会使其他类型的查询变得更加困难。
鉴于所有城镇的数据都相同,我的首选方案是使用一个带有区分列 (TOWN_ID) 的表。特别是如果我有钱购买带有分区选项的 Oracle 许可证。
关于database - 管理大量数据的最佳数据库解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272273/