The embodiment of the invention discloses a data query method and device, the method comprises: receiving data query, the query request contains data query, the query is contained in the pre judgment operator, if yes, in accordance with the query optimization rules of default, will transform query query conditions for at least two less contains default operator, according to the query condition, query the data from the default table, according to the query data to generate data query results. By using the embodiment of the invention, the data inquiry performance of the database is improved, and the speed of data inquiry is improved.
【技术实现步骤摘要】
一种数据查询方法及装置
本专利技术涉及数据库
,特别涉及一种数据查询方法及装置。
技术介绍
当前有非常多的SQL(StructuredQueryLanguage,结构化查询语言)优化方法,如:谓词下推、常量折叠等。但这些方法都是非常通用的优化方法,并且偏向保守的优化方法,大多都只是在执行的计划上做较小程度的调整进而达到优化数据查询的目的。然而在实际应用中,数据查询中常常包含一些具体特征,对于这类数据查询,上述优化方法并不能对其进行优化,只能采用保守的方法来进行数据查询,如以下的SQL语句:select*fromA,Xwhere(A.a='a0'andX.x='x0')or(A.a='a1'andX.x='x1')在执行过程中,由于该语句中包含括号、and和or,SQL数据库并不能对其进行谓词下推或采用其他优化方法对其进行优化,因此,为了获得查询结果,会对表A和表X做一个笛卡尔积(Cartesianproduct)运算,然后在笛卡尔积运算的基础上,按照条件“(A.a='a0'andX.x='x0')or(A.a='a1'andX.x='x1)”进行过滤并得到需要的查询结果。根据上述方法,笛卡尔积运算产生的结果数为num(A)*num(X),其中,num(A)为表A的行数,num(X)为X表的行数。当表A和表X达到一定规模后,这个笛卡尔积运算的结果将是一个规模巨大的结果集合,并占用查询终端大量的内存,进而影响了数据库的数据查询性能,查询速度慢。
技术实现思路
本专利技术实施例公开了一种数据查询方法及装置,以提高数据库的数据查询性能,提高数据查询速度。为达到上 ...
【技术保护点】
一种数据查询方法,其特征在于,所述方法包括步骤:接收数据查询请求,其中,所述数据查询请求包含查询条件;判断所述查询条件中是否包含预设运算符;若为是,则按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件;根据所述子查询条件,从预设表中查询数据,其中,所述预设表,用于存储数据;根据查询到的数据,生成数据查询结果。
【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括步骤:接收数据查询请求,其中,所述数据查询请求包含查询条件;判断所述查询条件中是否包含预设运算符;若为是,则按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件;根据所述子查询条件,从预设表中查询数据,其中,所述预设表,用于存储数据;根据查询到的数据,生成数据查询结果。2.根据权利要求1所述的方法,其特征在于,所述按照预设的查询条件优化规则,将所述查询条件变换为至少两个不包含所述预设运算符的子查询条件,包括:将所述查询条件设置为目标查询条件;以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件;在变换得到的目标子查询条件中不包含预设运算符的情况下,将不包含预设运算符的目标子查询条件确定为所述查询条件的一个子查询条件;在变换得到的目标子查询条件中包含预设运算符的情况下,将包含预设运算符的目标子查询条件设置为目标查询条件,返回所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件的步骤。3.根据权利要求2所述的方法,其特征在于,所述以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,包括:以所述目标查询条件中优先级最低运算符为基准,将所述目标查询条件变换为两个目标子查询条件,并获得目标子查询条件之间的运算关系;所述根据查询到的数据,生成数据查询结果,包括:根据所述目标子查询条件之间的运算关系,确定查询到的数据间的运算关系;根据查询到的数据和所确定的运算关系,生成数据查询结果。4.根据权利要求1所述的方法,其特征在于,所述根据所述子查询条件,从预设表中查询数据,包括:根据预设表的数据索引,从所述预设表中获得满足所述子查询条件的数据。5.根据权利要求1所述的方法,其特征在于,所述预设的查询条件优化规则包括:谓词下推、常量折叠、布尔函数简化中的一种或多种。6.一种数据查询装置,其特征在于,所述装置包括:请求接收模块、运算符判断模块、条件变换模块、数据查询模块和结果生成模块;其中,所述请求接收模块,用于接收数...
【专利技术属性】
技术研发人员:邓长春,
申请(专利权)人:杭州海康威视数字技术股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。