[发明专利]一种数据查询方法及装置在审

专利信息
申请号: 201610264975.4 申请日: 2016-04-26
公开(公告)号: CN107315744A 公开(公告)日: 2017-11-03
发明(设计)人: 邓长春 申请(专利权)人: 杭州海康威视数字技术股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京柏杉松知识产权代理事务所(普通合伙)11413 代理人: 马敬,项京
地址: 310052 浙江省杭*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 数据 查询 方法 装置
【说明书】:

技术领域

发明涉及数据库技术领域,特别涉及一种数据查询方法及装置。

背景技术

当前有非常多的SQL(Structured Query Language,结构化查询语言)优化方法,如:谓词下推、常量折叠等。但这些方法都是非常通用的优化方法,并且偏向保守的优化方法,大多都只是在执行的计划上做较小程度的调整进而达到优化数据查询的目的。

然而在实际应用中,数据查询中常常包含一些具体特征,对于这类数据查询,上述优化方法并不能对其进行优化,只能采用保守的方法来进行数据查询,如以下的SQL语句:

select*

from A,X

where

(A.a='a0'and X.x='x0')

or

(A.a='a1'and X.x='x1')

在执行过程中,由于该语句中包含括号、and和or,SQL数据库并不能对其进行谓词下推或采用其他优化方法对其进行优化,因此,为了获得查询结果,会对表A和表X做一个笛卡尔积(Cartesian product)运算,然后在笛卡尔积运算的基础上,按照条件“(A.a='a0'and X.x='x0')or(A.a='a1'and X.x='x1)”进行过滤并得到需要的查询结果。

根据上述方法,笛卡尔积运算产生的结果数为num(A)*num(X),其中,num(A)为表A的行数,num(X)为X表的行数。当表A和表X达到一定规模后,这个笛卡尔积运算的结果将是一个规模巨大的结果集合,并占用查询终端大量的内存,进而影响了数据库的数据查询性能,查询速度慢。

发明内容

本发明实施例公开了一种数据查询方法及装置,以提高数据库的数据查询性能,提高数据查询速度。

为达到上述目的,本发明实施例公开了一种数据查询方法,所述方法包括步骤:

接收数据查询请求,其中,所述数据查询请求包含查询条件;

判断所述查询条件中是否包含预设运算符;

若为是,则按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件;

根据所述子查询条件,从预设表中查询数据,其中,所述预设表,用于存储数据;

根据查询到的数据,生成数据查询结果。

在本发明的一种实现方式中,所述按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件,包括:

将所述查询条件设置为目标查询条件;

以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件;

在变换得到的目标子查询条件中不包含预设运算符的情况下,将不包含预设运算符的目标子查询条件确定为所述查询条件的一个子查询条件;

在变换得到的目标子查询条件中包含预设运算符的情况下,将包含预设运算符的目标子查询条件设置为目标查询条件,返回所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件的步骤。

在本发明的一种实现方式中,所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,包括:

以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,并获得目标子查询条件之间的运算关系;

所述根据查询到的数据,生成数据查询结果,包括:

根据所述目标子查询条件之间的运算关系,确定查询到的数据间的运算关系;

根据查询到的数据和所确定的运算关系,生成数据查询结果。

在本发明的一种实现方式中,所述根据所述子查询条件,从预设表中查询数据,包括:

根据预设表的数据索引,从所述预设表中获得满足所述子查询条件的数据。

在本发明的一种实现方式中,所述预设的查询条件优化规则包括:谓词下推、常量折叠、布尔函数简化中的一种或多种。

为达到上述目的,本发明实施例还公开了一种数据查询装置,所述装置包括:请求接收模块、运算符判断模块、条件变换模块、数据查询模块和结果生成模块;

其中,所述请求接收模块,用于接收数据查询请求,其中,所述数据查询请求包含查询条件;

所述运算符判断模块,用于判断所述查询条件中是否包含预设运算符,若为是,则触发所述条件变换模块;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州海康威视数字技术股份有限公司,未经杭州海康威视数字技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610264975.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top