什么是排名系统的好设计

Tha*_*ham 3 mysql database ranking

我有一张USER桌子,有桌子userIdpoint田地.在运行时,我想知道特定用户群的排名是什么.实现此目的的最佳方法是:
1:将所有用户查询到列表中.基于点对列表进行排序并进行二进制搜索以查找该用户的排名.这听起来像个坏主意.
2:是否可以通过创建数据库查询来完成这些任务?

我期待2000-5000用户.

Vic*_*mar 5

SET @rownum := 0;

SELECT rank, userId, point 
FROM (
       SELECT @rownum := @rownum + 1 AS rank, userId, point
       FROM user ORDER BY point DESC
     ) 
as result WHERE userId = xxxxxxxx
Run Code Online (Sandbox Code Playgroud)