繁体   English   中英

什么是php,mysql,memcached的最佳做法排行榜?

[英]what is the best practice leaderboard with php, mysql, memcached?

最近,我开发了手机游戏(LAMP + memcached)。

游戏中有玩家的得分表。 该表具有member_idnamescore列。

我想向我们的用户显示排行榜(全球排名)。

只需查询SELECT * FROM score ORDER BY score DESC ,然后显示结果集即可。

但我认为这不是好方法。 如果用户达到2000万,这个查询似乎很糟糕。 在这种情况下,最佳做法是什么? 你能给我一些建议吗?

以及如何检查特定用户的等级? 我想显示每个用户的排名。

好吧,您不想在排行榜上显示数百万用户吗?

SELECT * FROM score ORDER BY score DESC LIMIT 10

会选择前十名

此外,如果要显示用户排名,例如个人资料页面,则应这样做:

SELECT COUNT(*) + 1 AS rank FROM score WHERE score > (SELECT score FROM score WHERE member_id = :member_id);

您只需将当前用户的member_id添加到最后一个查询中,它将对他前面的所有行进行计数,并向其添加1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM