[发明专利]数据查询方法、装置、电子设备及可读存储介质有效
申请号: | 201911235112.4 | 申请日: | 2019-12-05 |
公开(公告)号: | CN111177476B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 杨文博 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京鸿德海业知识产权代理有限公司 11412 | 代理人: | 田宏宾 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 查询 方法 装置 电子设备 可读 存储 介质 | ||
1.一种数据查询方法,其特征在于,包括:
获取待查询内容的哈希值;
获取所述哈希值对应的数据单元和所述待查询内容的简要信息;其中,每个所述数据单元用于存储哈希值相同的内容,所述待查询内容为待查询键值,所述待查询内容的简要信息为所述待查询键值的哈希值的高N位,N为大于0的整数;
并行比较所述简要信息与所述数据单元中的多个简要信息是否相同;
根据所述待查询内容、和所述数据单元中存在的与所述待查询内容具有相同简要信息的存储内容,确定所述数据单元中是否存储有所述待查询内容。
2.根据权利要求1所述的方法,其特征在于,所述存储内容为键值;所述数据单元为拉链式哈希表中的哈希分桶;
其中,每个所述哈希分桶包括数据块和简要信息序列,所述简要信息序列包括分别与所述数据块中各存储内容对应的简要信息。
3.根据权利要求2所述的方法,其特征在于,所述获取所述哈希值对应的数据单元和所述待查询内容的简要信息,包括:
基于所述待查询键值、和获取所述待查询键值的哈希值采用的预设哈希算法,获取所述哈希值的对应的哈希分桶和所述待查询键值的简要信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述待查询键值、和获取所述待查询键值的哈希值采用的预设哈希算法,获取所述哈希值对应的哈希分桶,包括:
将所述哈希值对所述拉链式哈希表包括的哈希分桶总数取模,得到所述哈希值对应的哈希分桶的分桶标识,以便获取所述分桶标识所标识的哈希分桶。
5.根据权利要求2所述的方法,其特征在于,所述数据块的数据结构包括以下任意一种:链表,动态数组,静态数组,跳表,队列,栈,树,堆,图,散列表。
6.根据权利要求2-5中任一项所述的方法,其特征在于,所述并行比较所述简要信息与所述数据单元中的多个简要信息是否相同,包括:
使用单指令流多数据流SIMD指令并行比较所述待查询键值的简要信息与所述简要信息序列中的多个简要信息是否相同。
7.根据权利要求6所述的方法,其特征在于,所述简要信息序列的大小为8的整数倍;
所述简要信息序列中各元素的大小为1个字节。
8.根据权利要求2-5中任一项所述的方法,其特征在于,所述哈希分桶还包括数据块指针;
所述拉链式哈希表中任意L个哈希分桶的数据块指针、数据块和简要信息序列分别对应合并存储,其中,L的取值为大于0且小于所述拉链式哈希表包括的哈希分桶总数M的整数。
9.根据权利要求2-5中任一项所述的方法,其特征在于,所述拉链式哈希表为只读拉链式哈希表,所述哈希分桶还包括数据块索引;
所述只读拉链式哈希表中的全部哈希分桶的数据块和简要信息序列分别对应合并成固定大小分块序列化存储的数据块和简要信息序列。
10.根据权利要求9所述的方法,其特征在于,所述并行比较所述简要信息与所述数据单元中的多个简要信息是否相同,包括:
选取所述对应的哈希分桶中简要信息序列中预设数量的简要信息作为当前简要信息,并行比较所述待查询键值的简要信息与所述当前简要信息是否相同;
若所述当前简要信息中不存在与所述待查询键值的简要信息相同的简要信息,选取所述对应的哈希分桶中简要信息序列中下一预设数量的简要信息作为当前简要信息,执行所述并行比较所述待查询键值的简要信息与所述当前简要信息是否相同的操作,直至所述当前简要信息中存在与所述待查询键值的简要信息相同的简要信息或者读取到所述对应的哈希分桶的下一个哈希分桶。
11.根据权利要求2-5中任一项所述的方法,其特征在于,所述简要信息序列存储在第一存储单元中,所述数据块存储在第二存储单元中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911235112.4/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置