[发明专利]一种数据查询方法及装置在审
| 申请号: | 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达到一定规模后,这个笛卡尔积运算的结果将是一个规模巨大的结果集合,并占用查询终端大量的内存,进而影响了数据库的数据查询性能,查询速度慢。
发明内容
本发明实施例公开了一种数据查询方法及装置,以提高数据库的数据查询性能,提高数据查询速度。
为达到上述目的,本发明实施例公开了一种数据查询方法,所述方法包括步骤:
接收数据查询请求,其中,所述数据查询请求包含查询条件;
判断所述查询条件中是否包含预设运算符;
若为是,则按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件;
根据所述子查询条件,从预设表中查询数据,其中,所述预设表,用于存储数据;
根据查询到的数据,生成数据查询结果。
在本发明的一种实现方式中,所述按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件,包括:
将所述查询条件设置为目标查询条件;
以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件;
在变换得到的目标子查询条件中不包含预设运算符的情况下,将不包含预设运算符的目标子查询条件确定为所述查询条件的一个子查询条件;
在变换得到的目标子查询条件中包含预设运算符的情况下,将包含预设运算符的目标子查询条件设置为目标查询条件,返回所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件的步骤。
在本发明的一种实现方式中,所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,包括:
以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,并获得目标子查询条件之间的运算关系;
所述根据查询到的数据,生成数据查询结果,包括:
根据所述目标子查询条件之间的运算关系,确定查询到的数据间的运算关系;
根据查询到的数据和所确定的运算关系,生成数据查询结果。
在本发明的一种实现方式中,所述根据所述子查询条件,从预设表中查询数据,包括:
根据预设表的数据索引,从所述预设表中获得满足所述子查询条件的数据。
在本发明的一种实现方式中,所述预设的查询条件优化规则包括:谓词下推、常量折叠、布尔函数简化中的一种或多种。
为达到上述目的,本发明实施例还公开了一种数据查询装置,所述装置包括:请求接收模块、运算符判断模块、条件变换模块、数据查询模块和结果生成模块;
其中,所述请求接收模块,用于接收数据查询请求,其中,所述数据查询请求包含查询条件;
所述运算符判断模块,用于判断所述查询条件中是否包含预设运算符,若为是,则触发所述条件变换模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州海康威视数字技术股份有限公司,未经杭州海康威视数字技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610264975.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于适配器的大数据转换方法及系统
- 下一篇:一种私信存储方法及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





