1.
把排序限制在排行榜中有多少条记录,因为进入排行榜不是那么容易,每次只需要查询表中大于排行榜中的最小值即可
绝大多数用户永远徘徊在排行榜外的,如果服务器有很多,如何处理并发呢?想了引入队列机吧。
2.
当积分变化较大时,只更改积分和排名,而不进行实际意义上的重拍。也就是说,假如一个人的积分是12万,他的排名是358万。这一把,他赢了,积分是12万零800。查找积分是12万零八百人的排名是320万,就用这个排名作为他的影子排名,而不进行局部重拍,允许有一定的误差。隔一段时间,再进行实际意义上的重排来纠正误差。
3.
以空间换时间,应用程序启动的时候,创建一个“排名器”。加载所有用户的分数,在内存中建立分数与名次间的索引。在每次更新用户分数的时候,通知排名器。任何时候如果需要用户的名次,由排名器提供。