[发明专利]海量数据实时排序查询方法及系统有效
申请号: | 201510500565.0 | 申请日: | 2015-08-14 |
公开(公告)号: | CN105159950B | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 国睿 | 申请(专利权)人: | 深圳市光息谷科技发展有限公司 |
主分类号: | G06F16/245 | 分类号: | G06F16/245 |
代理公司: | 深圳市中联专利代理有限公司 44274 | 代理人: | 李俊 |
地址: | 518000 广东省深圳市南山区招商街道南海*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 海量 数据 实时 排序 查询 方法 系统 | ||
本发明公开了一种海量数据实时排序查询方法及系统,方法包括:排序步骤,根据经验值,将用户从0‑n分为n+1个级别,每个级别的所有id号使用链表保存,将用户数据分别保存在链表各个节点内,并建立经验值链表,经验值链表还保存用户在当前经验值级别中的插入顺序,每个经验值链表使用一个头指针和尾指针,分别指向第一个节点和最后一个节点;查询步骤,首先从最大经验值即级别为n+1开始,累加每个经验值级别的总人数,再在用户所属的经验值链表中,遍历查询找到该用户在同经验值用户中的排名,累加得到系统中的总排名。本发明能够为上亿用户量级别的海量数据,提供微秒级的查询、增加、删除、实时排序等功能。
技术领域
本发明涉及计算机数据处理技术领域,尤其涉及一种能够为上亿用户量级别的海量数据,提供微秒级的查询、增加、删除、实时排序等功能,且每秒可提供数十万至数百万次访问请求的海量数据实时排序查询方法及系统。
背景技术
在很多软件系统中,都存在类似这样的应用场景:对据有同样属性值的一组数据进行排序,显示排名最靠前的N位数据,显示当前数据排名等。例如BBS论坛,每个论坛注册用户会有一个经验值属性,用户可以看到在所有用户中的排名,以及当前论坛中经验值最高的前几名用户。又如网站中发布文章的点击阅读次数,可看到点击率最高的文章,以及任意一篇文章的点击排名。
传统软件系统中,一般使用关系型数据库系统来存储各种用户资料。例如常见的ERP、CRM系统等,使用Oracle、SQLServer等数据库存储信息。企业级应用一般数据规模最大在几十万以内,关系型数据库可以很好的解决各种数据存储、排序、提取问题。
用户量突破一定数量级,比如达到数百万、数千万甚至数亿用户后,传统的解决方案无法正常运行。主要表现在当数据库单表数据量超过百万数量级后,即使采用各种优化措施,性能也很难满足系统要求。在几千万数据量的前提下,数据库进行增删改查性能比较低,且单数据库一般只能提供每秒几千次的访问量,无法满足海量并发请求。
发明内容
本发明的目的之一是提供一种能够为上亿用户量级别的海量数据,提供微秒级的查询、增加、删除、实时排序等功能,且每秒可提供数十万至数百万次访问请求的海量数据实时排序查询方法。
本发明的目的之二是提供一种能够为上亿用户量级别的海量数据,提供微秒级的查询、增加、删除、实时排序等功能,且每秒可提供数十万至数百万次访问请求的海量数据实时排序查询系统。
为了实现上述目的之一,本发明提供的技术方案为:提供一种海量数据实时排序查询方法,包括:
排序步骤,根据经验值,将用户从0-n分为n+1个级别,每个级别的所有id号使用链表保存,且将用户数据分别保存在链表各个节点内,并建立经验值链表,经验值链表还保存用户在当前经验值级别中的插入顺序,每个经验值链表使用一个头指针和尾指针,分别指向第一个节点和最后一个节点;
查询步骤,查询某个用户在系统中的总排名时,首先从最大经验值即级别为n+1开始,累加每个经验值级别的总人数,再在用户所属的经验值链表中,遍历查询找到该用户在同经验值用户中的排名,累加得到系统中的总排名。
还包括插入步骤,将用户数据插入到对应级别的经验值链表最尾端。
针对每个经验值链表数据,增加一个Map映射,Map保存该链表中每个id数据的存储地址,当需要在链表中查找某个用户的排名时,直接通过Map定位到具体地址,提取顺序值即可得到用户在同经验值的用户群中具体排名。时间效率从顺序查找的O(N)提高到O(LogN)或者O(C),根据Map实现方式不同,时间效率不同。
Map映射实现可采用树结构或者hash表方式实现。
取n的值为100000。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市光息谷科技发展有限公司,未经深圳市光息谷科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510500565.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置