在排序好的海量数据中,寻找一个数字排列第几?请教各位大手

haiyangyiba 2012-02-28 08:39:48
如题,求解决一个问题思路。

假如有这样一个数据源
id
scores
一共2亿条记录,其中分数已经是排好了序的。

要求用户登录就显示用户分数在用户中的排名。

小鸟觉得这个问题,没什么实现思路,请教一下。

java或者数据库相关
...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjlzcj 2012-02-29
  • 打赏
  • 举报
回复
oracle 数据库吗?
select rownum paiming,id,scores from (select * from table_name order by scores ) where id = 'uid';

scores 加索引 没具体实验 可以试试
BearKin 2012-02-29
  • 打赏
  • 举报
回复
排好序的数据在数据库里?这种说法好奇怪..
allan0527 2012-02-29
  • 打赏
  • 举报
回复
同上,排好序的数据基本不太可能存在数据库中,除非临时表。。。
如果用SQL查询临时表的话,select count(*) from where scores > 当前用户分
scores建索引。。。

这种方式2亿数据性能堪忧啊。。。
考虑下数据水平分割吧,分表?分库?分区?都有考虑过吗?。。。
bawgiitx 2012-02-28
  • 打赏
  • 举报
回复
select count(l1.*) from utable l1 where
exists(select l2.* from utable l2 where l2.id='uid' l1.scores>l2.scores)
返回大于uid分数的个数
haiyangyiba 2012-02-28
  • 打赏
  • 举报
回复
数据库中呐,一个朋友问的,我没思路,坚信肯定有解决办法。
  • 打赏
  • 举报
回复
问一下,这些记录都存哪了?

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧