mysql - 如何设计和处理mysql中的大表?

标签 mysql sql database-design

假设我有一个游戏表、一个玩家表和一个游戏管理员(谁可以将游戏添加到系统)表,并且得分表包含游戏 ID、玩家 ID 和每个游戏级别的得分。

每个游戏都有很多玩家 玩家不是游戏管理员。 每个游戏管理员有几个游戏。得分表可能超过1500万条记录。

我有两个想法:请告诉我优点和缺点

根据我的估计系统不会有超过 100 场比赛,所以:

1.为每场比赛创建一个新表,防止将所有分数存储在一张表中

2.将玩家和玩家的主要资料保存在一个数据库中并为每个游戏创建新的数据库?

哪个选项更合适? 如果您有其他想法,请与我分享。 谢谢

最佳答案

从查询性能的角度来看,这两种解决方案基本上是等效的,因为它们都具有更多较小维度的表。唯一的区别是由于三个方面,第一个与访问和连接时间或在多个数据库访问各个板的情况下对数据库的身份验证有关,并从 dns(特别是从 dbname)路由到上游,但这意味着对于每次访问游戏 table 时,您都应该预置一个新连接。在第二种情况下,新连接的使用可能会较少,但您应该注意,您必须担心在代码中管理要访问的表的动态标识。最后,如果您使用托管解决方案,您可以访问的数据库数量通常会受到使用权或与提供商的服务契约(Contract)方面的限制。

关于mysql - 如何设计和处理mysql中的大表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968254/

相关文章:

java - GAE-J中标注系统的设计

database - 如何设计数据库,所有产品类型一张表还是每种产品类型一张表?

mysql - 获取 mysql 中不同重复 ID 的计数

sql - Kotlin 公开 - 没有标识列的表的实体

sql - 显示一行中的字段

c# - LINQ to Entities 无法识别方法 'Int32 ToInt32(System.String)' 方法,并且无法将此方法翻译成存储表达式

database-design - 多表或多模式

Mysql查询计算SKU销售的总产品

mysql - mysql中按相同日期分组

mysql - 根据一组参数从列表中选择不同的