假设您有一个包含500,000行的MySQL表。每行都有一个字段,其中包含一个我们称之为点的数值。每当用户在站点上执行某些操作时,点将根据活动以正向或负向更新。在点字段上放置索引并按点检索已排序的用户列表很容易。但是,当我们需要知道一个随机行在列表中的位置时该怎么办?如果您要编写代码以提取用户的个人资料并显示与其他用户相关的“等级”,那么您将采用什么系统来有效地提供该信息,即不选择整个用户表。
感谢您的帮助。
答案 0 :(得分:4)
直接进行(使用您已有的索引)是否有效?我想的是:
select count(*) from user_points where points > x
其中x
是您正在查看的用户的点数。