[发明专利]数据查询方法、装置、设备及存储介质有效
申请号: | 202011241196.5 | 申请日: | 2020-11-09 |
公开(公告)号: | CN112328630B | 公开(公告)日: | 2023-10-13 |
发明(设计)人: | 黄元兵 | 申请(专利权)人: | 广州虎牙科技有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/2457 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 511400 广东省广州市番禺*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 查询 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种数据查询方法、装置、设备及存储介质。该方法包括:响应于对数据集中前K个数据的查询,从数据集获取K个数据加入至第一数组中,所述查询与目标排序方式关联;对第一数组进行与目标排序方式匹配的排序,并获取第一数组中末位数据;根据末位数据,从数据集的剩余数据中获取至少一个关联排序数据加入至第二数组中,并使用第二数组更新第一数组;返回执行获取第一数组中末位数据的操作,直至完成对完整数据集的处理,并将当前更新的第一数组确定为查询结果。本发明实施例的技术方案,实现了一种新的数据查询方式,只使用两个数组就可以从大规模数据中快速查询到前K个数据,提高查询效率。
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、设备及存储介质。
背景技术
在互联网行业中,在海量数据中查询排序top-k的数据是常见的应用场景,并且数据查询速度直接影响到终端用户的用户体验,目前常用的top-k数据查询方式是采用堆排序算法。
但是,堆排序算法存在以下几个问题:1、插入新数据时可能导致堆随机遍历,内存空间跳跃大,缓存不友好,性能下降明显;2、输入数据如果反向有序,每次都会触发堆顶的弹出,算法复杂度急剧上升;3、堆的几个基本操作实现较复杂,部分语言库(例如C语言)不提供该组件或算法;4、某些库实现需要额外的内存空间。这些问题都会导致top-k数据查询性能下降,查询速度慢。
发明内容
本发明提供一种数据查询方法、装置、设备及存储介质,实现了一种新的数据查询方式,只使用两个数组就可以从大规模数据中快速查询到前K个数据,提高查询效率。
第一方面,本发明实施例提供了一种数据查询方法,包括:
响应于对数据集中前K个数据的查询,从数据集获取K个数据加入至第一数组中,查询与目标排序方式关联;
对第一数组进行与目标排序方式匹配的排序,并获取第一数组中末位数据;
根据末位数据,从数据集的剩余数据中获取至少一个关联排序数据加入至第二数组中,并使用第二数组更新第一数组;
返回执行获取第一数组中末位数据的操作,直至完成对完整数据集的处理,并将当前更新的第一数组确定为查询结果。
可选的,对第一数组进行与目标排序方式匹配的排序,包括:
采用快速排序算法,对第一数组进行与目标排序方式匹配的排序;以及
使用第二数组更新第一数组,包括:
采用快速排序算法,对第二数组进行与目标排序方式匹配的排序;
采用归并排序算法,使用排序后的第二数组更新第一数组。
可选的,采用归并排序算法,使用排序后的第二数组更新第一数组,包括:
根据第一数组和排序后的第二数组中的各项数据,在排序后的第二数组中确定目标替换数据,并采用归并排序算法,将目标替换数据更新替换至第一数组中。
可选的,在根据末位数据,从数据集的剩余数据中获取至少一个关联排序数据加入至第二数组中之前,还包括:
根据系统硬件信息和/或测试配置信息,确定目标数组长度,并根据目标数组长度,创建第二数组。
可选的,根据系统硬件信息和/或测试配置信息,确定目标数组长度,并根据目标数组长度,创建第二数组,包括:
根据K的取值,确定备选数组长度区间,以及与备选数组长度区间关联的缓存类型;
根据缓存类型中的空余缓存空间,在备选数组长度区间内确定目标数组长度,并在空余缓存空间中,创建目标数组长度的第二数组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州虎牙科技有限公司,未经广州虎牙科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011241196.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:微球储氢容器及聚集方法
- 下一篇:一种含有特殊纹路的红砖成型模具
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置