CN111666279A - 查询数据处理方法、装置、电子设备及计算机存储介质 - Google Patents
查询数据处理方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111666279A CN111666279A CN202010292384.4A CN202010292384A CN111666279A CN 111666279 A CN111666279 A CN 111666279A CN 202010292384 A CN202010292384 A CN 202010292384A CN 111666279 A CN111666279 A CN 111666279A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- processed
- index data
- subdata
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种查询数据处理方法、装置、电子设备及计算机存储介质,所述方法包括:获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。该技术方案提高了索引优化的通用程度,为索引优化的使用带来了极大的便利,提高了索引优化的工作效率,节省了索引优化的计算资源。
Description
技术领域
本公开实施例涉及数据处理技术领域,具体涉及一种查询数据处理方法、装置、电子设备及计算机存储介质。
背景技术
在数据库领域,索引优化和推荐是数据库性能优化的一个重要组成部分,索引优化和推荐指的是尽量在短时间内对于一个或多个输入的查询语句提供优化和推荐建议的服务。借助索引优化和推荐服务,用户不必精通数据库优化领域专业知识,即可获得查询语句性能优化相关的专业建议,比如,对给定查询语句及相关环境信息提供较佳索引建议、语句改写建议,以最大化提升查询语句性能,提高查询效率,并节约查询计算量和计算资源。随着数据库技术的发展,数据库市场呈现出多样化的趋势,能够被使用的数据库类型越来越多,但目前的索引优化和推荐通常设置于某一数据库的内部,只适用于该数据库或者相同类型的数据库,这就使得索引优化和推荐无法通用化,为索引优化和推荐带来使用上的不便。
发明内容
本公开实施例提供一种查询数据处理方法、装置、电子设备及计算机存储介质。
第一方面,本公开实施例中提供了一种查询数据处理方法。
具体的,所述查询数据处理方法,包括:
获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
结合第一方面,本公开实施例在第一方面的第一种实现方式中,所述获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据,被实施为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
结合第一方面和第一方面的第一种实现方式,本公开实施例在第一方面的第二种实现方式中,所述对所述待处理查询数据进行解析之后,还包括:
对于所述待处理查询数据进行合法性验证。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述基于所述待处理查询子数据生成相应的候选索引数据组合,被实施为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据,被实施为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值,被实施为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式和第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果,被实施为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
第二方面,本公开实施例中提供了一种查询数据处理装置。
具体的,所述查询数据处理装置,包括:
获取拆分模块,被配置为获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
代价评估模块,被配置为基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
合并模块,被配置为对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
结合第二方面,本公开实施例在第二方面的第一种实现方式中,所述获取拆分模块被配置为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
结合第二方面和第二方面的第一种实现方式,本公开实施例在第二方面的第二种实现方式中,所述获取拆分模块在对所述待处理查询数据进行解析之后,还被配置为:
对于所述待处理查询数据进行合法性验证。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述代价评估模块中基于所述待处理查询子数据生成相应的候选索引数据组合的部分,被配置为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
结合第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,所述代价评估模块中对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据的部分,被配置为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
结合第二方面、第二方面的第二种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的部分,被配置为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
结合第二方面、第二方面的第二种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式和第二方面的第五种实现方式,本公开在第二方面的第六种实现方式中,所述合并模块被配置为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持查询数据处理装置执行上述查询数据处理方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述查询数据处理装置还可以包括通信接口,用于查询数据处理装置与其他设备或通信网络通信。
第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储查询数据处理装置所用的计算机指令,其包含用于执行上述查询数据处理方法为查询数据处理装置所涉及的计算机指令。
本公开实施例提供的技术方案可包括以下有益效果:
上述技术方案通过对于根据待处理查询数据生成的候选索引数据组合中的候选索引数据,根据所述待处理查询数据的目标数据库类型进行有针对性的代价评估,来得到能够实现通用性的查询数据优化。该技术方案考虑了多种数据库的特点和特征,将之前只能应用于某一特定数据库中的索引优化整合起来,使得索引的优化能够与数据库本身相独立,进而提高了索引优化的通用程度,为索引优化的使用带来了极大的便利,提高了索引优化的工作效率,节省了索引优化的计算资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的查询数据处理方法的流程图;
图2示出根据本公开一实施方式的查询数据处理方法的整体流程图;
图3示出根据本公开一实施方式的查询数据处理装置的结构框图;
图4是适于用来实现根据本公开一实施方式的查询数据处理方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
本公开实施例提供的技术方案通过对于根据待处理查询数据生成的候选索引数据组合中的候选索引数据,根据所述待处理查询数据的目标数据库类型进行有针对性的代价评估,来得到能够实现通用性的查询数据优化。该技术方案考虑了多种数据库的特点和特征,将之前只能应用于某一特定数据库中的索引优化整合起来,使得索引的优化能够与数据库本身相独立,进而提高了索引优化的通用程度,为索引优化的使用带来了极大的便利,提高了索引优化的工作效率,节省了索引优化的计算资源。
图1示出根据本公开一实施方式的查询数据处理方法的流程图,适用于查询数据处理服务器,如图1所示,所述查询数据处理方法包括以下步骤S101-S103:
在步骤S101中,获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
在步骤S102中,基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
在步骤S103中,对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
上文提及,在数据库领域,索引优化和推荐是数据库性能优化的一个重要组成部分,索引优化和推荐指的是尽量在短时间内对于一个或多个输入的查询语句提供优化和推荐建议的服务。借助索引优化和推荐服务,用户不必精通数据库优化领域专业知识,即可获得查询语句性能优化相关的专业建议,比如,对给定查询语句及相关环境信息提供较佳索引建议、语句改写建议,以最大化提升查询语句性能,提高查询效率,并节约查询计算量和计算资源。随着数据库技术的发展,数据库市场呈现出多样化的趋势,能够被使用的数据库类型越来越多,但目前的索引优化和推荐通常设置于某一数据库的内部,只适用于该数据库或者相同类型的数据库,这就使得索引优化和推荐无法通用化,为索引优化和推荐带来使用上的不便。
考虑到上述问题,在该实施方式中,提出一种查询数据处理方法,该方法通过对于根据待处理查询数据生成的候选索引数据组合中的候选索引数据,根据所述待处理查询数据的目标数据库类型进行有针对性的代价评估,来得到能够实现通用性的查询数据优化。该技术方案考虑了多种数据库的特点和特征,将之前只能应用于某一特定数据库中的索引优化整合起来,使得索引的优化能够与数据库本身相独立,进而提高了索引优化的通用程度,为索引优化的使用带来了极大的便利,提高了索引优化的工作效率,节省了索引优化的计算资源。
在本公开一实施方式中,所述待处理查询数据指的是查询方输入的、需要进行后续优化处理的查询数据,比如查询语句,其中,所述待处理查询数据的查询目标数据库可以是目前市场上可用的且可支持通信或者数据传输的数据库,也就是说,所述待处理查询数据的查询目标数据库可以不同、可以多样化。其中,所述查询目标数据库指的是所述待处理查询数据将要执行查询的数据库,比如,所述查询目标数据库可以为MySQL、MongoDB、Redis、Cassandra等数据库;所述查询方指的是针对某一数据库具有一定的查询意图、输入查询数据的对象,比如某一使用数据库进行查询操作的用户或者设备等等。
在本公开一实施方式中,所述索引数据指的是基于查询数据生成的、能够表达所述查询数据的查询意图的、但表达形式简于所述查询数据的数据。
在该实施方式中,在获取得到待处理查询数据后,可先将其拆分为至少两个待处理查询子数据,然后分别对于每个待处理查询子数据生成相应的候选索引数据组合,然后根据所述待处理查询数据的目标数据库类型对于所述候选索引数据组合进行不同计算方式的代价评估,得到与所述待处理查询子数据对应的目标索引数据,即代价最低的索引数据,最后对于所述待处理查询数据的不同待处理查询子数据所对应的所有目标索引数据进行合并处理,最终得到对于所述待处理查询数据的处理结果。
在本公开一实施方式中,所述步骤S101,即所述获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据的步骤,可被实施为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
考虑到某一待处理查询数据有可能查询目的较多、结构较为复杂、所包含的字段内容较为丰富,因此,为了保证对于所述待处理查询数据进行处理的完整性,对于所述待处理查询数据进行全面的索引转换,在该实施方式中,首先对于所述待处理查询数据进行解析,识别所述查询语句的组成部分以及相关字段的数据类型,得到解析结果,其中,所述解析结果比如可以为所述待处理查询数据中所包括的谓词以及谓词类型、排序字段、聚合字段、查询字段等等;然后确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素可包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性,即可以按照所述待处理查询数据的实现目的即数据执行目的、数据字段的不同和/或索引数据的生成独立性对于所述待处理查询数据进行拆分,得到至少两个待处理查询子数据,使得拆分得到的至少两个待处理查询子数据能够完整地覆盖所述待处理查询数据的数据执行目的和所述待处理查询数据的组成字段,并尽量使得后续将要生成的索引数据的重复率尽可能地低。
在本公开一实施方式中,所述对所述待处理查询数据进行解析之后,还包括:
对于所述待处理查询数据进行合法性验证。
考虑到有些查询数据有可能存在数据结构不规范、数据字段使用不标准的情况,进而影响索引数据的准确性或者影响索引数据生成的质量和效率,因此,在该实施方式中,在对所述待处理查询数据进行解析之后,还需要进行合法性验证,以确认所述待处理查询数据所使用到的表、字段或其他数据是否符合目标数据库的结构设计规则。
在本公开一实施方式中,所述步骤S102中的基于所述待处理查询子数据生成相应的候选索引数据组合的步骤,可被实施为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
为了最终找到较优的索引数据,在该实施方式中,首先确定一个能够更全面地生成多个索引数据以供后续在其中确定较优索引数据的索引生成规则,然后将根据所述索引生成规则生成的所述多个候选索引数据组合起来,得到与所述待处理查询子数据对应的候选索引数据组合。
其中,所述索引生成规则比如可以以等值查询在前,范围谓词在后的规则来组合所有可能的索引,例如,根据上述规则,查询语句“SELECT C1,C2 FROM T1 WHERE C1=‘a’and C2>‘b’order By C2”可生成候选索引:IX3:(C1,C2);查询语句“SELECT C1,C2 FROMT1 WHERE C1>‘a’and C2>‘b’order By C2”可生成候选索引:IX1:(C1),IX2:(C2),IX3:(C1,C2)和IX4:(C2,C1)。
为了保证索引数据的全面性,在生成所述索引数据时,可对所述待处理查询子数据中所包括的所有字段,比如查询、排序、聚合等字段,进行全排列,但是在具体实施时,为了收敛计算空间,减少计算量,可以对于所述索引生成规则进行限制或者对于生成的索引数据进行筛选,去除有可能出现计算重复或者计算无意义等情况的索引数据,以减少候选索引数据的数量,进而降低较优索引数据选择的复杂度。
在本公开一实施方式中,所述步骤S102中的对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据的步骤,可被实施为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
上文提及,现有技术中的索引优化通常设置于某一数据库的内部,只适用于该数据库或者相同类型的数据库,这就使得索引优化和推荐无法通用化,为索引优化和推荐带来使用上的不便。为了提高索引优化的通用程度,解除目标数据库为某一类型的查询语句只能依靠该类型的数据库进行处理的限制,在该实施方式中,将上述应用于某一特定数据库的索引优化整合起来,实现对于输入的查询语句,无论其目标数据库为什么类型,均可对其进行优化处理,从而使得索引的优化能够与数据库相独立,进而提高索引优化的工作效率,节省索引优化的计算资源。具体地,首先对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行分类型的代价评估,得到所述候选索引数据的代价值,其中,所述代价值指的是利用所述候选索引数据执行查询时所需要耗费的代价,比如CPU消耗代价、IO消耗代价等等;然后将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
在本公开一实施方式中,可设置所述候选索引数据执行查询时所需要耗费的代价值为CPU消耗代价与IO消耗代价的代价和,那么代价和值最低的候选索引数据就可确定为与所述待处理查询子数据对应的较优的目标索引数据。
在本公开一实施方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的步骤,可被实施为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
为了对于所述候选索引数据组合中的候选索引数据根据所述待处理查询数据的目标数据库类型进行分类型的、有针对性的代价评估,即代价值计算,具体地,在该实施方式中:
首先,获取所述候选索引数据组合中每一候选索引数据的查询参数,其中,所述查询参数指的是该候选索引数据所涉及的查询对象的参数,比如,目标数据库中目标表格的标识信息、目标表格中目标行或者目标列的标识信息等等,例如,对于索引数据IX3:(C1,C2),其查询参数为C1和C2。
然后,根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息,其中,所述目标数据库统计信息可包括所述目标数据库的元数据和数据分布信息,所述元数据可包括:表的结构、列的类型、数据获取方式等等,所述数据分布信息可包括:某一数据列的分布直方图、某一数据列的最大值、某一数据列的最小值、某一数据列中唯一值的数量、至少两个数据列的组合方式等等。在该实施方式中,为了节省计算量,在获取所述候选索引数据组合中每一候选索引数据的查询参数之后,只需要检查所述缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,而无需获得所述目标数据库的全部统计信息,另外,为了减少统计信息的获取时间、同时节省与各个目标数据库的访问数据量,在该实施方式中,每次获取到不同的统计信息之后先将其存储在缓存中,这样若相同的统计信息再次被需要,就可以直接从缓存中取出使用,而无需借助对于目标数据库的访问和通信来获取,若缓存中没有需要的统计信息时,再去对应的目标数据库中请求获取相应的信息。
然后,根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径。考虑到不同数据库具有不同的特征,比如,不同数据库中表的结构、列的类型、数据获取方式以及数据库中数据的统计信息和分布信息均有所不同,因此,需根据目标数据库的类型及其特征生成与所述候选索引数据相应的数据访问路径,其中,数据访问路径的生成是本领域技术人员应当掌握的技术,此处不再赘述。
最后,根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。上文提及,不同数据库的特征不同,统计信息也不同,而对于不同的数据库,即使数据访问路径相同,执行完毕一次数据访问流程需要的CPU和IO消耗也是不同的,因此,在该实施方式中,在得到与所述候选索引数据对应的数据访问路径之后,还需要根据对应的目标数据库统计信息计算与所述候选索引数据对应的、与所述数据访问路径对应的代价值。在本公开一实施方式中,如上文所示,所述代价值设置为所述候选索引数据利用所述数据访问路径执行数据访问时所需要的CPU消耗代价与IO消耗代价的总和。
在本公开一实施方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的步骤可借助对应于不同目标数据库类型的代价评估组件来实现。
在本公开一实施方式中,所述步骤S103,即所述对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果,可被实施为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
为了节省数据计算量,提高计算效率,在该实施方式中,在得到较优的目标索引数据之后,还对于得到的所述目标索引数据进行合并,去除重复的或者高可能性重复的目标索引数据,以进一步降低数据计算量,提高数据计算效率。其中,所述预设合并条件可根据实际应用的需要以及目标数据库的特点进行设置,本公开对其具体内容不作具体限定。比如,所述预设合并条件可包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同,其中,所述合并操作指的是对于符合上述预设合并条件的至少两个索引数据,只保留其中一个删除其他数据的操作。其中,所述索引数据预设比例部分相同指的是至少两个索引数据中存在预设比例部分相同,比如,至少两个索引数据中有95%的部分均相同,这样情况认为所述至少两个索引数据属于雷同数据,可进行合并。对于所述索引数据前缀相同的情况,根据实际应用的需要,可直接将其进行合并,也可以对于所述索引数据对应的待处理查询子数据重新进行新的索引数据的生成和代价计算,即二次代价计算,将二次代价计算后得到的较低的代价值对应的原索引数据作为最终的索引数据保留下来,删除其他索引数据。
图2示出根据本公开一实施方式的查询数据处理方法的整体流程图,如图2所示,首先对于输入的待处理查询数据进行解析和验证,然后将所述待处理查询数据拆分为至少两个待处理查询子数据,基于所述待处理查询子数据生成相应的候选索引数据组合;然后对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据,在进行代价评估时,设置一优化组件,使得所述优化组件首先根据所述候选索引数据组合中每一候选索引数据的查询参数检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息,然后借助与所述待处理查询数据的目标数据库类型对应的代价评估组件,根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径、根据所述数据访问路径和所述代价评估组件中存储的目标数据库统计信息计算得到与所述候选索引数据对应的代价值、将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据并输出;最后,对于不同待处理查询子数据对应的目标索引数据进行合并处理,最终得到所述待处理查询数据的处理结果。
对于至少两个待处理查询数据的情况,也可按照上述流程进行类似的处理,得到目标索引数据,进而得到所述待处理查询数据的处理结果,此处不再赘述,需要说明的是,上述目标索引数据的合并处理既可以是对于某一查询数据的目标索引数据进行合并,也可以是对于至少两个待处理查询数据的目标索引数据进行合并。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图3示出根据本公开一实施方式的查询数据处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,可实现为查询数据处理服务器。如图3所示,所述查询数据处理装置包括:
获取拆分模块301,被配置为获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
代价评估模块302,被配置为基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
合并模块303,被配置为对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
上文提及,在数据库领域,索引优化和推荐是数据库性能优化的一个重要组成部分,索引优化和推荐指的是尽量在短时间内对于一个或多个输入的查询语句提供优化和推荐建议的服务。借助索引优化和推荐服务,用户不必精通数据库优化领域专业知识,即可获得查询语句性能优化相关的专业建议,比如,对给定查询语句及相关环境信息提供较佳索引建议、语句改写建议,以最大化提升查询语句性能,提高查询效率,并节约查询计算量和计算资源。随着数据库技术的发展,数据库市场呈现出多样化的趋势,能够被使用的数据库类型越来越多,但目前的索引优化和推荐通常设置于某一数据库的内部,只适用于该数据库或者相同类型的数据库,这就使得索引优化和推荐无法通用化,为索引优化和推荐带来使用上的不便。
考虑到上述问题,在该实施方式中,提出一种查询数据处理装置,该装置通过对于根据待处理查询数据生成的候选索引数据组合中的候选索引数据,根据所述待处理查询数据的目标数据库类型进行有针对性的代价评估,来得到能够实现通用性的查询数据优化。该技术方案考虑了多种数据库的特点和特征,将之前只能应用于某一特定数据库中的索引优化整合起来,使得索引的优化能够与数据库本身相独立,进而提高了索引优化的通用程度,为索引优化的使用带来了极大的便利,提高了索引优化的工作效率,节省了索引优化的计算资源。
在本公开一实施方式中,所述待处理查询数据指的是查询方输入的、需要进行后续优化处理的查询数据,比如查询语句,其中,所述待处理查询数据的查询目标数据库可以是目前市场上可用的且可支持通信或者数据传输的数据库,也就是说,所述待处理查询数据的查询目标数据库可以不同、可以多样化。其中,所述查询目标数据库指的是所述待处理查询数据将要执行查询的数据库,比如,所述查询目标数据库可以为MySQL、MongoDB、Redis、Cassandra等数据库;所述查询方指的是针对某一数据库具有一定的查询意图、输入查询数据的对象,比如某一使用数据库进行查询操作的用户或者设备等等。
在本公开一实施方式中,所述索引数据指的是基于查询数据生成的、能够表达所述查询数据的查询意图的、但表达形式简于所述查询数据的数据。
在该实施方式中,在获取得到待处理查询数据后,可先将其拆分为至少两个待处理查询子数据,然后分别对于每个待处理查询子数据生成相应的候选索引数据组合,然后根据所述待处理查询数据的目标数据库类型对于所述候选索引数据组合进行不同计算方式的代价评估,得到与所述待处理查询子数据对应的目标索引数据,即代价最低的索引数据,最后对于所述待处理查询数据的不同待处理查询子数据所对应的所有目标索引数据进行合并处理,最终得到对于所述待处理查询数据的处理结果。
在本公开一实施方式中,所述获取拆分模块301被配置为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
考虑到某一待处理查询数据有可能查询目的较多、结构较为复杂、所包含的字段内容较为丰富,因此,为了保证对于所述待处理查询数据进行处理的完整性,对于所述待处理查询数据进行全面的索引转换,在该实施方式中,首先对于所述待处理查询数据进行解析,识别所述查询语句的组成部分以及相关字段的数据类型,得到解析结果,其中,所述解析结果比如可以为所述待处理查询数据中所包括的谓词以及谓词类型、排序字段、聚合字段、查询字段等等;然后确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素可包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性,即可以按照所述待处理查询数据的实现目的即数据执行目的、数据字段的不同和/或索引数据的生成独立性对于所述待处理查询数据进行拆分,得到至少两个待处理查询子数据,使得拆分得到的至少两个待处理查询子数据能够完整地覆盖所述待处理查询数据的数据执行目的和所述待处理查询数据的组成字段,并尽量使得后续将要生成的索引数据的重复率尽可能地低。
在本公开一实施方式中,所述获取拆分模块301在对所述待处理查询数据进行解析之后,还被配置为:
对于所述待处理查询数据进行合法性验证。
考虑到有些查询数据有可能存在数据结构不规范、数据字段使用不标准的情况,进而影响索引数据的准确性或者影响索引数据生成的质量和效率,因此,在该实施方式中,在对所述待处理查询数据进行解析之后,还需要进行合法性验证,以确认所述待处理查询数据所使用到的表、字段或其他数据是否符合目标数据库的结构设计规则。
在本公开一实施方式中,所述代价评估模块302中基于所述待处理查询子数据生成相应的候选索引数据组合的部分,可被配置为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
为了最终找到较优的索引数据,在该实施方式中,首先确定一个能够更全面地生成多个索引数据以供后续在其中确定较优索引数据的索引生成规则,然后将根据所述索引生成规则生成的所述多个候选索引数据组合起来,得到与所述待处理查询子数据对应的候选索引数据组合。
其中,所述索引生成规则比如可以以等值查询在前,范围谓词在后的规则来组合所有可能的索引,例如,根据上述规则,查询语句“SELECT C1,C2 FROM T1 WHERE C1=‘a’and C2>‘b’order By C2”可生成候选索引:IX3:(C1,C2);查询语句“SELECT C1,C2 FROMT1 WHERE C1>‘a’and C2>‘b’order By C2”可生成候选索引:IX1:(C1),IX2:(C2),IX3:(C1,C2)和IX4:(C2,C1)。
为了保证索引数据的全面性,在生成所述索引数据时,可对所述待处理查询子数据中所包括的所有字段,比如查询、排序、聚合等字段,进行全排列,但是在具体实施时,为了收敛计算空间,减少计算量,可以对于所述索引生成规则进行限制或者对于生成的索引数据进行筛选,去除有可能出现计算重复或者计算无意义等情况的索引数据,以减少候选索引数据的数量,进而降低较优索引数据选择的复杂度。
在本公开一实施方式中,所述代价评估模块302中对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据的部分,可被配置为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
上文提及,现有技术中的索引优化通常设置于某一数据库的内部,只适用于该数据库或者相同类型的数据库,这就使得索引优化和推荐无法通用化,为索引优化和推荐带来使用上的不便。为了提高索引优化的通用程度,解除目标数据库为某一类型的查询语句只能依靠该类型的数据库进行处理的限制,在该实施方式中,将上述应用于某一特定数据库的索引优化整合起来,实现对于输入的查询语句,无论其目标数据库为什么类型,均可对其进行优化处理,从而使得索引的优化能够与数据库相独立,进而提高索引优化的工作效率,节省索引优化的计算资源。具体地,首先对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行分类型的代价评估,得到所述候选索引数据的代价值,其中,所述代价值指的是利用所述候选索引数据执行查询时所需要耗费的代价,比如CPU消耗代价、IO消耗代价等等;然后将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
在本公开一实施方式中,可设置所述候选索引数据执行查询时所需要耗费的代价值为CPU消耗代价与IO消耗代价的代价和,那么代价和值最低的候选索引数据就可确定为与所述待处理查询子数据对应的较优的目标索引数据。
在本公开一实施方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的部分,可被配置为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
为了对于所述候选索引数据组合中的候选索引数据根据所述待处理查询数据的目标数据库类型进行分类型的、有针对性的代价评估,即代价值计算,具体地,在该实施方式中:
首先,获取所述候选索引数据组合中每一候选索引数据的查询参数,其中,所述查询参数指的是该候选索引数据所涉及的查询对象的参数,比如,目标数据库中目标表格的标识信息、目标表格中目标行或者目标列的标识信息等等,例如,对于索引数据IX3:(C1,C2),其查询参数为C1和C2。
然后,根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息,其中,所述目标数据库统计信息可包括所述目标数据库的元数据和数据分布信息,所述元数据可包括:表的结构、列的类型、数据获取方式等等,所述数据分布信息可包括:某一数据列的分布直方图、某一数据列的最大值、某一数据列的最小值、某一数据列中唯一值的数量、至少两个数据列的组合方式等等。在该实施方式中,为了节省计算量,在获取所述候选索引数据组合中每一候选索引数据的查询参数之后,只需要检查所述缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,而无需获得所述目标数据库的全部统计信息,另外,为了减少统计信息的获取时间、同时节省与各个目标数据库的访问数据量,在该实施方式中,每次获取到不同的统计信息之后先将其存储在缓存中,这样若相同的统计信息再次被需要,就可以直接从缓存中取出使用,而无需借助对于目标数据库的访问和通信来获取,若缓存中没有需要的统计信息时,再去对应的目标数据库中请求获取相应的信息。
然后,根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径。考虑到不同数据库具有不同的特征,比如,不同数据库中表的结构、列的类型、数据获取方式以及数据库中数据的统计信息和分布信息均有所不同,因此,需根据目标数据库的类型及其特征生成与所述候选索引数据相应的数据访问路径,其中,数据访问路径的生成是本领域技术人员应当掌握的技术,此处不再赘述。
最后,根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。上文提及,不同数据库的特征不同,统计信息也不同,而对于不同的数据库,即使数据访问路径相同,执行完毕一次数据访问流程需要的CPU和IO消耗也是不同的,因此,在该实施方式中,在得到与所述候选索引数据对应的数据访问路径之后,还需要根据对应的目标数据库统计信息计算与所述候选索引数据对应的、与所述数据访问路径对应的代价值。在本公开一实施方式中,如上文所示,所述代价值设置为所述候选索引数据利用所述数据访问路径执行数据访问时所需要的CPU消耗代价与IO消耗代价的总和。
在本公开一实施方式中,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的步骤可借助对应于不同目标数据库类型的代价评估组件来实现。
在本公开一实施方式中,所述合并模块303可被配置为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
为了节省数据计算量,提高计算效率,在该实施方式中,在得到较优的目标索引数据之后,还对于得到的所述目标索引数据进行合并,去除重复的或者高可能性重复的目标索引数据,以进一步降低数据计算量,提高数据计算效率。其中,所述预设合并条件可根据实际应用的需要以及目标数据库的特点进行设置,本公开对其具体内容不作具体限定。比如,所述预设合并条件可包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同,其中,所述合并操作指的是对于符合上述预设合并条件的至少两个索引数据,只保留其中一个删除其他数据的操作。其中,所述索引数据预设比例部分相同指的是至少两个索引数据中存在预设比例部分相同,比如,至少两个索引数据中有95%的部分均相同,这样情况认为所述至少两个索引数据属于雷同数据,可进行合并。对于所述索引数据前缀相同的情况,根据实际应用的需要,可直接将其进行合并,也可以对于所述索引数据对应的待处理查询子数据重新进行新的索引数据的生成和代价计算,即二次代价计算,将二次代价计算后得到的较低的代价值对应的原索引数据作为最终的索引数据保留下来,删除其他索引数据。
本公开实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法步骤。
图4是适于用来实现根据本公开一实施方式的查询数据处理方法的计算机系统的结构示意图。
如图4所示,计算机系统400包括处理单元401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行上述实施方式中的各种处理。在RAM403中,还存储有系统400操作所需的各种程序和数据。处理单元401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。其中,所述处理单元401可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述查询数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (16)
1.一种查询数据处理方法,适用于查询数据处理服务器,包括:
获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
2.根据权利要求1所述的方法,所述获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据,被实施为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
3.根据权利要求2所述的方法,所述对所述待处理查询数据进行解析之后,还包括:
对于所述待处理查询数据进行合法性验证。
4.根据权利要求1-3任一所述的方法,所述基于所述待处理查询子数据生成相应的候选索引数据组合,被实施为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
5.根据权利要求1-3任一所述的方法,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据,被实施为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
6.根据权利要求5所述的方法,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值,被实施为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
7.根据权利要求1-3任一所述的方法,所述对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果,被实施为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
8.一种查询数据处理装置,适用于查询数据处理服务器,包括:
获取拆分模块,被配置为获取待处理查询数据,并将所述待处理查询数据拆分为至少两个待处理查询子数据;
代价评估模块,被配置为基于所述待处理查询子数据生成相应的候选索引数据组合,并对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据;
合并模块,被配置为对于不同待处理查询子数据对应的目标索引数据进行合并处理,得到所述待处理查询数据的处理结果。
9.根据权利要求8所述的装置,所述获取拆分模块被配置为:
获取待处理查询数据,并对所述待处理查询数据进行解析,得到解析结果;
确定拆分元素,根据所述拆分元素和解析结果将所述待处理查询数据拆分为至少两个待处理查询子数据,其中,所述拆分元素包括以下元素中的一种或多种:数据执行目的、数据字段、索引数据的生成独立性。
10.根据权利要求9所述的装置,所述获取拆分模块在对所述待处理查询数据进行解析之后,还被配置为:
对于所述待处理查询数据进行合法性验证。
11.根据权利要求8-10任一所述的装置,所述代价评估模块中基于所述待处理查询子数据生成相应的候选索引数据组合的部分,被配置为:
确定索引生成规则,并根据所述索引生成规则生成所述待处理查询子数据的候选索引数据,得到与所述待处理查询子数据对应的候选索引数据组合。
12.根据权利要求8-10任一所述的装置,所述代价评估模块中对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到与所述待处理查询子数据对应的目标索引数据的部分,被配置为:
对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值;
将具有最低代价值的候选索引数据确定为与所述待处理查询子数据对应的目标索引数据。
13.根据权利要求12所述的装置,所述对于所述候选索引数据组合根据所述待处理查询数据的目标数据库类型进行代价评估,得到所述候选索引数据的代价值的部分,被配置为:
获取所述候选索引数据组合中每一候选索引数据的查询参数;
根据所述待处理查询数据的目标数据库类型检测缓存中是否存储有与所述候选索引数据的查询参数相应的目标数据库统计信息,若没有,则请求从所述目标数据库中获取所述目标数据库统计信息;
根据所述候选索引数据生成与所述待处理查询数据的目标数据库类型对应的数据访问路径;
根据所述数据访问路径和所述目标数据库统计信息计算得到与所述候选索引数据对应的代价值。
14.根据权利要求8-10任一所述的装置,所述合并模块被配置为:
检测所述不同待处理查询子数据对应的目标索引数据是否符合预设合并条件,并当所述不同待处理查询子数据对应的目标索引数据符合预设合并条件时,对于所述目标索引数据进行合并,得到所述待处理查询数据的处理结果,其中,所述预设合并条件包括以下条件中的一种或多种:索引数据相同,索引数据预设比例部分相同和索引数据前缀相同。
15.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-7任一项所述的方法步骤。
16.一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-7任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010292384.4A CN111666279B (zh) | 2020-04-14 | 2020-04-14 | 查询数据处理方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010292384.4A CN111666279B (zh) | 2020-04-14 | 2020-04-14 | 查询数据处理方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666279A true CN111666279A (zh) | 2020-09-15 |
CN111666279B CN111666279B (zh) | 2022-04-29 |
Family
ID=72382727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010292384.4A Active CN111666279B (zh) | 2020-04-14 | 2020-04-14 | 查询数据处理方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666279B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162983A (zh) * | 2020-09-22 | 2021-01-01 | 北京人大金仓信息技术股份有限公司 | 数据库索引建议处理方法、装置、介质和电子设备 |
CN113568892A (zh) * | 2021-08-12 | 2021-10-29 | 威讯柏睿数据科技(北京)有限公司 | 一种基于内存计算对数据源进行数据查询的方法和设备 |
WO2022252782A1 (zh) * | 2021-06-04 | 2022-12-08 | 跬云(上海)信息科技有限公司 | 云计算索引推荐方法及系统 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131490A1 (en) * | 2008-11-26 | 2010-05-27 | Vertica Systems, Inc. | Modular query optimizer |
CN102968420A (zh) * | 2011-08-31 | 2013-03-13 | 国际商业机器公司 | 数据库查询的方法和系统 |
US20130086038A1 (en) * | 2011-09-30 | 2013-04-04 | Bmc Software, Inc. | Provision of index recommendations for database access |
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
WO2018090557A1 (zh) * | 2016-11-18 | 2018-05-24 | 华为技术有限公司 | 查询数据表的方法和装置 |
US20180203899A1 (en) * | 2017-01-18 | 2018-07-19 | DataScience, Inc. | Expression pushdown optimization system |
CN108664516A (zh) * | 2017-03-31 | 2018-10-16 | 华为技术有限公司 | 查询优化方法及相关装置 |
CN109241093A (zh) * | 2017-06-30 | 2019-01-18 | 华为技术有限公司 | 一种数据查询的方法、相关装置及数据库系统 |
CN109408515A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种索引执行方法与装置 |
CN110019218A (zh) * | 2017-12-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据存储与查询方法及设备 |
CN110569244A (zh) * | 2019-08-30 | 2019-12-13 | 深圳计算科学研究院 | 一种海明空间近似查询方法及存储介质 |
CN110688393A (zh) * | 2019-09-29 | 2020-01-14 | 星环信息科技(上海)有限公司 | 查询语句优化方法、装置、计算机设备及存储介质 |
CN110807041A (zh) * | 2019-11-01 | 2020-02-18 | 广州华多网络科技有限公司 | 索引推荐方法、装置、电子设备及存储介质 |
CN110909014A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 优化建议生成及数据库查询方法、装置、设备及存储介质 |
-
2020
- 2020-04-14 CN CN202010292384.4A patent/CN111666279B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131490A1 (en) * | 2008-11-26 | 2010-05-27 | Vertica Systems, Inc. | Modular query optimizer |
US20120246147A1 (en) * | 2008-11-26 | 2012-09-27 | Andrew Lamb | Modular query optimizer |
CN102968420A (zh) * | 2011-08-31 | 2013-03-13 | 国际商业机器公司 | 数据库查询的方法和系统 |
US20130086038A1 (en) * | 2011-09-30 | 2013-04-04 | Bmc Software, Inc. | Provision of index recommendations for database access |
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
WO2018090557A1 (zh) * | 2016-11-18 | 2018-05-24 | 华为技术有限公司 | 查询数据表的方法和装置 |
US20180203899A1 (en) * | 2017-01-18 | 2018-07-19 | DataScience, Inc. | Expression pushdown optimization system |
CN108664516A (zh) * | 2017-03-31 | 2018-10-16 | 华为技术有限公司 | 查询优化方法及相关装置 |
CN109241093A (zh) * | 2017-06-30 | 2019-01-18 | 华为技术有限公司 | 一种数据查询的方法、相关装置及数据库系统 |
CN110019218A (zh) * | 2017-12-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据存储与查询方法及设备 |
CN110909014A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 优化建议生成及数据库查询方法、装置、设备及存储介质 |
CN109408515A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种索引执行方法与装置 |
CN110569244A (zh) * | 2019-08-30 | 2019-12-13 | 深圳计算科学研究院 | 一种海明空间近似查询方法及存储介质 |
CN110688393A (zh) * | 2019-09-29 | 2020-01-14 | 星环信息科技(上海)有限公司 | 查询语句优化方法、装置、计算机设备及存储介质 |
CN110807041A (zh) * | 2019-11-01 | 2020-02-18 | 广州华多网络科技有限公司 | 索引推荐方法、装置、电子设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
SHIKHA MEHTA ET AL.: "Empirical Evidence of Heuristic and Cost Based Query Optimizations in Relational Databases", 《2018 ELEVENTH INTERNATIONAL CONFERENCE ON CONTEMPORARY COMPUTING (IC3)》 * |
张引红: "分布式数据库查询处理和优化算法", 《微型电脑应用》 * |
李澍: "数据库查询优化研究", 《电脑知识与技术》 * |
樊新华: "关系数据库的查询优化技术", 《计算机与数字工程》 * |
邱涛 等: "面向关系数据库的智能索引调优方法", 《软件学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162983A (zh) * | 2020-09-22 | 2021-01-01 | 北京人大金仓信息技术股份有限公司 | 数据库索引建议处理方法、装置、介质和电子设备 |
WO2022252782A1 (zh) * | 2021-06-04 | 2022-12-08 | 跬云(上海)信息科技有限公司 | 云计算索引推荐方法及系统 |
CN113568892A (zh) * | 2021-08-12 | 2021-10-29 | 威讯柏睿数据科技(北京)有限公司 | 一种基于内存计算对数据源进行数据查询的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111666279B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666279B (zh) | 查询数据处理方法、装置、电子设备及计算机存储介质 | |
US11132363B2 (en) | Distributed computing framework and distributed computing method | |
CN113760839A (zh) | 日志数据压缩处理方法、装置、电子设备和存储介质 | |
US8650180B2 (en) | Efficient optimization over uncertain data | |
CN112000848A (zh) | 一种图数据处理方法、装置、电子设备及存储介质 | |
CN109101541B (zh) | 新增指标管理方法、设备及计算机可读存储介质 | |
CN114281663A (zh) | 测试处理方法、装置、电子设备和存储介质 | |
CN111581431B (zh) | 基于动态评估的数据探查方法和装置 | |
CN111125311A (zh) | 检验信息归一处理的方法、装置、存储介质及电子设备 | |
CN113742364B (zh) | 数据访问方法、装置、电子设备、存储介质及程序产品 | |
CN113094415B (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
CN114358596A (zh) | 指标计算方法及装置 | |
CN110515967B (zh) | 基于spark计算框架的数据分析方法及电子设备 | |
CN115080616A (zh) | 字典数据获取方法、装置、存储介质及电子设备 | |
CN113590890A (zh) | 信息存储方法、装置、电子设备、存储介质及程序产品 | |
CN108763474B (zh) | 获取交易相关性及执行回归测试的方法、装置及存储介质 | |
CN112131257A (zh) | 数据查询方法和装置 | |
CN112307050B (zh) | 一种重复关联计算的识别方法、装置及计算机系统 | |
CN114218935B (zh) | 数据分析中的实体展示方法和装置 | |
CN115033742A (zh) | 基于dsl配置的数据计算及存储方法、装置及电子设备 | |
CN116719842A (zh) | 基于内存的数据处理方法、设备及存储介质 | |
Hochguertel | Improvement of data access. On the way to Remote Data Access in Germany | |
CN115714824A (zh) | 报文转义方法、装置及电子设备 | |
CN117312360A (zh) | 数据获取方法、装置及终端设备 | |
CN116680110A (zh) | 系统异常原因的确定方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230713 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |