我们坚持制定一个" Live"我们游戏的排行榜。我们想要一个可以跟踪进度并且对性能友好的排行榜。
到目前为止,我们所做的是创建一种方法,只在mysql表中插入新的统计信息,而不是更新任何内容。原因是我们永远不想删除旧的统计数据,因为每个放置行中的进度指示。另外,仅插入我们就不会锁定表(mysql)。
所以这就是事情;玩家将能够分享排名,每次插入表只是每次只有一个点。 - 当我们添加此点时,我们希望返回受影响的用户,以便我们可以通知他们"排行榜更改"。
这是我们的;包含这些列的mysql表:
id
,user_id
,rank
,week
,month
,year
,points
,placement_id
,{{ 1}}
我们的想法是,如果我们有一个名为" placement_id"每次编辑#rank时都会保留一个新的ID,我们可以跟踪这个。但我们发现的是,如果用户离开排名,那么该位置下面的其余部分必须按照一个排名,如果它是空的。在这里,一切都变得很糟糕。
有没有人知道怎么想这个?由于我们不想更新行,出于性能原因,当排行榜有数千名玩家时,我们能做些什么?