[发明专利]基于哈希连接的探测方法、装置、设备及存储介质在审
申请号: | 202110077395.5 | 申请日: | 2021-01-20 |
公开(公告)号: | CN112765174A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 朱仲颖;扈天阳 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/25 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 连接 探测 方法 装置 设备 存储 介质 | ||
本申请公开了一种基于哈希连接的探测方法、装置、设备及存储介质,具体包括创建第一表格的哈希表,哈希表包括哈希槽;确定第一表格中各参考列数据在哈希表中对应的哈希槽;根据各参考列数据的哈希槽是否冲突选择相应的存储方式依次将各参考列数据所属的整行数据存储至对应的哈希槽,并根据存储结果设置各哈希槽的冲突标记;根据冲突标记和第二表格中的数据进行哈希探测,第二表格与第一表格哈希连接。在本方案中,根据哈希槽冲突与否选择不同的存储方式存储数据,并基于冲突标记进行哈希探测,可以解决现有技术中哈希连接存在的问题,提高哈希连接的性能。
技术领域
本申请实施例涉及关系型数据库领域,尤其涉及一种基于哈希连接的探测方法、装置、设备及存储介质。
背景技术
连接操作是数据库中的基本操作,用于从两个关系的笛卡尔积中选取属性之间满足一定条件的元组,现有的连接技术有很多,比如,嵌套循环连接算法、基于归并排序的连接算法、基于哈希的连接算法、基于索引的连接算法等,不同的算法在不同应用场景下有不同的性能。当两个表做连接查询,且有等值连接条件时,哈希连接是实现两个表连接的一种高效的实现方式。例如,通过SELECT*FROM T1,T2 WHERE T1.C1=T2.D2;语句查询哈希连接,可以选用数据较少的表作为左表,比如,T1作为左表,有C1和C2两个列,T2作为右表,有D1和D2两个列。T1表的数据如下:
表1
基于T1构造哈希表,采用T2表进行探测,输出满足条件(T1.C1=T2.D2)的结果。其中,构造哈希表的过程如下:
1、根据配置参数创建一张固定大小的哈希表;
2、使用数据库内部函数(比如bfd_int64、bfd_dec、bfd_time等)将T1.C1的实际值value计算得到哈希键值key;
3、通过哈希函数计算键值key在哈希表中的位置,并在该位置插入对应的实际值value;
4、循环执行步骤2、3,直至处理完T1表中的数据。
但是,若多个哈希键值映射到哈希表中相同的位置,则会成为哈希冲突,具体包括以下三种情况:
第一种,相同的原始值。即计算得到相同的哈希键值key,通过哈希函数映射到哈希表同一个位置;第二种,不同的原始值。通过多个值组合、字符串等类型计算得到相同的哈希键值key,通过哈希函数映射到哈希表的同一个位置;第三种,原始值和哈希键值key均不同。当原始值个数超过哈希表大小,有些不同的哈希键值会映射到哈希表同一个位置,或者哈希算法也会决定哈希冲突的概率。
基于上述哈希冲突的原因,哈希探测时需要比较原始数据,该过程如下:
(1)获取哈希连接中右表连接的原始数据(例如T2.D2),计算哈希键值并通过哈希函数定位到哈希表的具体位置(即哈希槽);
(2)将连接列的原始数据(如T2.D2)和哈希槽上的数据进行一一比较,如果相等,说明该行数据符合要求,并输出查询项的数据(例如,以上述查询语句为例,设T2此时的数据为(1,4),匹配到T1(1,2),那么输出查询结果为(1,2,1,4))。
(3)重复上述步骤(1)、(2),直至右表中的数据处理完毕。
可以看出,上述哈希探测过程中存在以下问题:1、右表数据需要与定位到的哈希槽上每条数据进行比较;2、相同的数据存在重复比较;3、哈希表不存在冲突,并且右表数据为左表数据的子集时,工业应用上通常仍然需要一一比较原始数据。
发明内容
为了解决上述至少一个技术问题,本申请实施例提供了以下方案。
第一方面,本申请实施例提供了一种基于哈希连接的探测方法,该方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110077395.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车制动灯智能控制方法
- 下一篇:两自由度复合驱动仿人手智能采茶装置