簡體   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