我现在处于两难的境地,不知道哪个更好。假设我的网站上有 100++(或更多)游戏。我想存储每场比赛的高分。我应该将所有高分存储在一张表中还是每个游戏都有自己的表?
比较:
1 个表:1 个表包含很多行(数据)。每个玩不同游戏的用户都会向此表提交分数。不知道如果很多用户同时提交会怎么样。这个表结构应该是:gameID,name,score。所以我只需进行 1 个查询即可在 1 个 php 页面中查看哪个游戏的高分。
如果使用多个表(每个游戏都有自己的表),我会有更多的表,但行数(数据)会少得多。
从长远来看,哪一个更好? sql性能怎么样?
我正在使用 php 和 mysql。
最佳答案
我会为玩家制作一张表,一张用于游戏,一张用于高分的多对多表格,其中包含player_id、game_id和高分值。
讨论
如果您有 100.000 名玩家和 500 款游戏,您最多可以拥有 50.000.000 个条目。但它们是数字且非常短。 最好不要使用实时查询来提供高分,而是使用缓存文件的结果。几乎每个人都是这样做的。您每天都会更新缓存的高分列表。通过这种方式,您可以实时进行写入并从缓存中进行读取,并且它们不会干扰。
另一个建议是每月重置高分表,或者根据访问频率将旧数据分开。 Facebook 正在做类似的事情,正如我在他们的首席开发人员的演示中看到的那样。
关于php - 保存到一张表还是创建多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1193071/