[发明专利]数据库查询方法及装置有效
| 申请号: | 201911121942.4 | 申请日: | 2019-11-15 |
| 公开(公告)号: | CN112818010B | 公开(公告)日: | 2022-06-07 |
| 发明(设计)人: | 周兆琦;李茂增;冯欢 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/242;G06F16/22;G06F16/28 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 查询 方法 装置 | ||
本申请公开了数据库查询方法及装置,涉及数据库技术领域,有助于提高反连接查询语句的执行效率。该方法包括:获取反连接查询语句,反连接查询语句用于基于第一查询列组合和第二查询列组合查询第一数据表中的目标记录。目标记录所在的元组中的第一数据组合不属于第一集合;第一数据组合对应的列组合是第一查询列组合;第一集合是第二数据表中的第二数据组合构成的集合,第二数据组合对应的列组合是第二查询列组合,第一查询列组合与第二查询列组合中对应列均不同时具有非空约束;获取目标哈希表;计算第一记录所在的元组中的第一子数据组合的目标哈希值;若目标哈希值对应的第二数据组合中不包含第一数据组合,则确定第一记录为目标记录。
技术领域
本申请涉及数据库技术领域,尤其涉及数据库查询方法及装置。
背景技术
随着信息技术的发展,产生的数据量越来越巨大,数据库中数据的查询需求也越来越复杂,这就需要针对数据库的查询进行优化,以提高查询效率。
当前,在关系型数据库中,每个对象都有自己的一张数据表,对象的所有属性都是这张数据表的列,表与表之间根据关联的列连接在一起,表连接就是两张数据表根据关联的列,组合成一个数据集合。表连接的方式有多种类型。例如:内连接,外连接,左连接,右连接,反连接,全连接等。如果查询语句涉及表连接,且连接条件(即两个数据表的关联的列的关系)涉及NOT IN运算符,那么,在词法语法解析完成后,数据库管理系统会将此类查询的表连接方式转换为反连接(anti-join),该反连接的连接条件为T1.x=T2.x或者T1.x是空或者 T2.x是空值。其语义为,只要右表T2中存在满足该连接条件的记录存在,那么,左表T1中满足该连接条件的记录就会被删除,最终返回的是T1中不满足该连接条件的记录。
由于在关系型数据库中,空(null)值是一个特殊的存在,其特殊之处在于,null值与任何其它值的比较,返回结果均为不确定(unknown),例如,5=null,5!=null,null=null,null!=null,其返回结果均为unknown。因此,当连接条件中涉及的数据表列都没有非空约束(即允许数据表中存在空数据)时,数据库管理系统通常会使用嵌套循环连接(nested loop join) 或者合并连接(merge join)执行反连接查询语句的查询。嵌套循环连接对于外表(即上述右表T2)的每一条元组均需要遍历整个内表(即上述左表T1),这会造成反连接查询语句的查询开销大,且查询效率低。合并连接由于null值的存在,也会需要遍历整个内表,这会造成反连接查询语句的查询开销大,且查询效率低。
发明内容
本申请的实施例提供数据库查询方法及装置,有助于降低查询开销,提高查询效率。
为达到上述目的,本申请的实施例采用如下技术方案:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911121942.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:输液泵
- 下一篇:热泵除霜退出控制方法、装置、电子设备及存储介质





