周梦康 发表于 2014-08-13 2782 次浏览 标签 : 计算机基础

出处:http://www.ucai.cn/ask/detail?queid=3495

最佳解决方式是显示区间就可以了,例如你的排名是100w+或者1000w+,几乎没有网站会显示精确排名(例如 12031875),因为这没有意义还不如1000w+清晰。这样的话只需要求出前1万名(甚至更少)的分数以及10w、100w、1000w等几个分数然后缓存成积分->排名,获取排名就非常简单了。前1万名分数变化后,下次登录再更新缓存,后面几个阶段的分数可以缓存更久。如果一定要精确排名,则可以考虑用积分来对应排名,因为积分一般只有几万,最多几十万,建立一个10万的整形数组对应排名,如果用户的积分从5变到8,则只需要把a[5-7]排名加1就可以了。

评论列表