我有一个视频游戏统计数据库,其中需要将大量信息链接到给定的补丁(版本2.4,2.5,2.6等)。一些数据与所有补丁相关(例如玩家的整体胜利数),其他信息与补丁相关(例如玩家的补丁赢数)。每个补丁有数亿个匹配,并且假设每个匹配有10个玩家,“matches_players”关系表每个补丁将有超过10亿行。我可以想到存储这些信息的三种解决方案:
1)一个庞大的数据库,在“matches”表中有一个“patch_id”列。我假设MySQL可以通过加入查询中的“匹配”表来轻松计算给定补丁的玩家杀人数等等吗?
2)一个庞大的数据库,其中包含为每个补丁命名的新表(“matches_2_4”,“players_2_4”,“matches_2_5”,“players_2_5”等)。
3)多个数据库,一个用于存储共享信息的主数据库和一个用于每个补丁的数据库。这使得视觉上的组织最有条理。这会影响性能吗?我已经读过,使用多个数据库只是MySQL的语法差异,即使我引用多个数据库,查询也应该同样快。
还有一件事......补丁基于一段时间(每隔几个月就有一个补丁)。 “matches”表已经有一个“start_time”列。如果使用包含大量表的单个数据库,我应该创建“patch_id”列,还是仅使用“WHERE start_time> 154829350和start_time< 157543076”执行查询?
我已经阅读了已发布的类似问题的答案,但大多数人说“这取决于”,然后根据提问者的情况进行解释,所以我想知道人们对这个问题的看法。谢谢你们。