CN110019289A - 一种数据查询方法、装置及电子设备 - Google Patents
一种数据查询方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110019289A CN110019289A CN201710744290.4A CN201710744290A CN110019289A CN 110019289 A CN110019289 A CN 110019289A CN 201710744290 A CN201710744290 A CN 201710744290A CN 110019289 A CN110019289 A CN 110019289A
- Authority
- CN
- China
- Prior art keywords
- signature
- inquiry request
- data inquiry
- pending data
- library
- 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
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
- G06F16/24532—Query optimisation of parallel queries
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据查询方法、装置及电子设备。该数据查询方法包括:获得待处理数据查询请求的签名,并判断签名库中是否存在与其签名相似度在设定阈值范围内的目标签名,签名库中的目标签名对应已处理的数据查询请求及数据库地址;在签名库中存在目标签名即存在与待处理数据查询请求的签名相似或相同的签名的情况下,获得目标签名对应的数据库地址;将该待处理数据查询请求发送至该数据库地址对应的数据库,通过该数据库基于缓存数据对待处理数据查询请求进行处理。
Description
技术领域
本申请涉及数据库领域,特别涉及一种数据查询方法、装置及电子设备。
背景技术
随着互联网技术的不断发展,对数据库的访问请求越来越多,访问频率也越来越高。在数据库高负载的情况下,往往需要对数据库进行读写分离,即写入数据库与查询数据库分开,读写数据库之间通过各种数据库底层提供的主从复制功能来保持数据的一致性。
在高并发访问***中,为了解决大量的访问请求,需要一定的冗余来分担这些请求。而大部分的***都具有读多写少的特点,普遍的策略是将查询数据库克隆出一个或多个镜像库组成一个专门供数据库读操作的集群,将数据库查询请求即读请求通过负载均衡的中间件分发到集群中不同的实例(即数据库)上,来分担查询数据库的压力,提高访问的速度。然而,随着并发访问量的指数级增加,数据库的访问速度需要进一步提升。
发明内容
本说明书实施例提供一种数据查询方法、装置及电子设备,用于实现对待处理数据查询请求处理速度的提升,提高数据库的访问速度。
第一方面,本说明书实施例提供一种数据查询方法,所述方法包括:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
可选的,所述获得待处理数据查询请求的签名包括:
获得影响查询速度的n个目标参数的参数排序;
获得所述待处理数据查询请求中包含的m个目标参数和过滤条件,n、m为正整数,m≤n;
基于所述m个目标参数、所述参数排序及所述过滤条件,获得所述待处理数据查询请求的编码作为所述签名。
可选的,所述获得待处理数据查询请求的签名包括:
枚举待处理数据查询请求的种类,对各种类型的待处理数据查询请求进行枚举并编码;
获得所述待处理数据查询请求的类型对应的编码作为所述签名。
可选的,当所述签名为所述待处理数据查询请求的编码时,所述方法还包括:
将所述待处理数据查询请求的签名和所述签名库中的签名作为数值,获得所述待处理数据查询请求的签名与所述签名库中的签名之间的数值差异作为两个签名之间的相似度。
可选的,所述获得待处理数据查询请求的签名包括:
基于所述待处理数据查询请求的查询内容,将所述待处理数据查询请求映射为一个向量,将所述向量作为所述签名。
可选的,当所述签名为所述待处理数据查询请求对应的向量时,所述方法还包括:
获得两个向量之间的夹角作为所述两个向量对应的两个签名之间的相似度。
可选的,所述方法还包括:
获得处理时间大于等于时间阈值的或者获得请求频率大于等于频率阈值的已处理数据查询请求;
基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库。
可选的,所述基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库,包括:
获得所述已处理数据查询请求的处理时长,以及所述已处理数据查询请求的签名的失效时间;
基于所述已处理数据查询请求的签名、所述数据库地址、所述处理时长及所述失效时间,生成所述签名相关信息并存入所述签名库。
可选的,所述待处理数据查询请求由结构化查询语言SQL实现。
可选的,所述n个目标参数包括:所述结构化查询语言SQL中的n个列名称。
第二方面,本说明书实施例提供一种数据查询装置,包括:
计算单元,用于获得待处理数据查询请求的签名;
判断单元,用于判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
获取单元,用于在所述签名库中存在所述目标签名的情况下,获得所述目标签名对应的所述签名相关信息中的数据库地址;
分配单元,用于将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
可选的,所述计算单元,用于:
获得影响查询速度的n个目标参数的参数排序;
获得所述待处理数据查询请求中包含的m个目标参数和过滤条件,n、m为正整数,m≤n;
基于所述m个目标参数、所述参数排序及所述过滤条件,获得所述待处理数据查询请求的编码作为所述签名。
可选的,所述计算单元,用于:
枚举待处理数据查询请求的种类,对各种类型的待处理数据查询请求进行枚举并编码;
获得所述待处理数据查询请求的类型对应的编码作为所述签名。
可选的,当所述签名为所述待处理数据查询请求的编码时,所述装置还包括:相似度计算单元,用于:
将所述待处理数据查询请求的签名和所述签名库中的签名作为数值,获得所述待处理数据查询请求的签名与所述签名库中的签名之间的数值差异作为两个签名之间的相似度。
可选的,所述计算单元,用于:基于所述待处理数据查询请求的查询内容,将所述待处理数据查询请求映射为一个向量,将所述向量作为所述签名。
可选的,当所述签名为所述待处理数据查询请求对应的向量时,所述装置还包括:
相似度计算单元,用于获得两个向量之间的夹角作为所述两个向量对应的两个签名之间的相似度。
可选的,所述获取单元还用于:获得处理时间大于等于时间阈值的或者获得请求频率大于等于频率阈值的已处理数据查询请求;
所述装置还包括:生成单元,用于基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库。
可选的,所述生成单元,包括:
获取子单元,用于获得所述已处理数据查询请求的处理时长,以及所述已处理数据查询请求的签名的失效时间;
生成子单元,用于基于所述已处理数据查询请求的签名、所述数据库地址、所述处理时长及所述失效时间,生成所述签名相关信息并存入所述签名库。
可选的,所述待处理数据查询请求由结构化查询语言SQL实现。
可选的,所述n个目标参数包括:所述结构化查询语言SQL中的n个列名称。
第三方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
第四方面、本说明书实施提供一种电子设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果:
本申请实施例提供一种数据查询方法,获得待处理数据查询请求的签名,并通过判断签名库中是否存在与该签名相似度在设定阈值范围内的目标签名,来判断各个处理待处理数据查询请求的实例是否处理过相似的待处理数据查询请求,缓存有处理该待处理数据查询请求的相关数据,若签名库中存在与其前面相似的目标签名,将该待处理数据查询请求发送至目标签名的数据库地址,通过该数据库地址对应的实例服务来对该待处理数据查询请求进行处理。由于该数据库中缓存有处理该待处理数据查询请求的缓存数据,能够极大的提升该数据查询的处理速度,进而实现对待处理数据查询请求处理速度的提升,提高数据库的访问速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据访问***的示意图;
图2为本申请实施例提供的一种数据查询方法的流程图;
图3为本申请实施例提供的待处理数据查询请求初次访问***的流程图;
图4为本申请实施例提供的后续待处理数据查询请求访问***的流程图;
图5为本说明书实施例提供的获取待处理数据查询请求的签名的流程图;
图6为本申请实施例提供的一种数据查询装置的示意图;
图7为本申请实施例提供的一种电子设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例提供一种数据查询方法、装置及电子设备,用于实现对待处理数据查询请求处理速度的提升,提高数据库的访问速度。
下面结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
请参考图1,为本说明书实施例提供的一种数据访问***,包括:
1)、客户端(用Cient表示),连接到负载均衡组件上,用于发送待处理数据查询请求、数据写入请求,以及接受请求反馈。
2)、负载均衡组件(用HA表示),用于将客户端发送的请求按照一定的策略进行分发。
3)、读数据库以及集群(用R表示),提供数据库读取能力的实例或集群。
4)、写数据库(用W表示),提供数据库写能力的实例,通过数据库底层提供的主从复制功能来进行数据同步,保持读数据库与写数据库的数据一致。
通常情况下,读数据库以及集群R在处理一数据查询请求后的一段时间内,缓存中都缓存有处理该数据查询请求所需要的数据,本说明书实施例通过下述数据查询方法利用这些缓存数据对相似及相同的待处理数据查询请求的处理进行加速。其中,数据库引擎的多级缓存设计,能够很高效的缓存数据,并且对于在物理存储上按照聚合索引结构相邻分布的数据,还将大量连续的数据整块的缓存起来,利用这些缓存数据为之后的待处理数据查询请求提供帮助,能够使待处理数据查询请求的处理速度成百上千倍的提升。
请参考图2,为本说明书实施例提供的一种数据查询方法,该方法应用于负载均衡组件HA中。该负载均衡组件HA不限于应用在数据库数据访问***中,还可以应用于普通电子设备的数据访问***中。该数据查询方法包括:
S21:获得待处理数据查询请求的签名;
S22:判断签名库中是否存在与该待处理数据查询请求的签名相似度在设定阈值范围内的目标签名,其中,签名库用于存储已处理数据查询请求的签名相关信息;
S23:若签名库中存在目标签名,获得目标签名对应的签名相关信息中的数据库地址;
S24:将待处理数据查询请求发送至数据库地址对应的数据库,通过该数据库对待处理数据查询请求进行处理。
本申请说明书通过签名库来存储已处理数据查询请求的签名相关信息,该签名相关信息中包含数据库地址,该数据库地址对应的数据库中缓存有已处理数据查询请求在处理过程中使用过的数据。对待处理数据查询请求,可以分配至处理过相似数据查询请求的数据库来进行处理,利用数据库中的缓存数据来进行处理加速。数据查询请求之间是否相似可以通过其签名来判断,减少计算量,提高查询速率。
具体实施过程中,S21获得的数据请求的签名包含两种:一种是其签名无相似或相同签名在签名库中,此时该数据请求的签名与签名库中的签名之间的相似度均不在设定阈值范围内,如初次访问数据库的待处理数据查询请求;另一种是其签名有相似或相同签名在签名库中,此时该数据请求的签名与签名库中的签名之间的相似度有在设定阈值范围内的。相应的,S22判断签名库中是否存在与该待处理数据查询请求的签名相似度在设定阈值范围内的目标签名,可获得两种判断结果:①、签名库中不存在上述目标签名,即签名库中不存在与待处理数据查询请求的签名相似或相同的签名;②、签名库中存在上述目标签名,即签名库中存在与待处理数据查询请求的签名相似或相同的签名。
基于S22获得的不同的判断结果,本说明书实施例提供不同的处理方法。请参考图3,为签名库中不存在目标签名时,待处理数据查询请求的处理流程。客户端Client A通过负载均衡组件HA与数据库R_1建立连接后,客户端Client A发送待处理数据查询请求后执行如下步骤:
3.1、负载均衡组件HA执行对接收到的待处理数据查询请求进行签名计算,获得待处理数据查询请求的签名。
3.2、将计算获得的签名发送到签名库中进行对比,判断签名库中是否存在相似或相同的签名。此时,获得的判断结果为:无相似或相同的签名,进而执行3.3。
3.3、将待处理数据查询请求发送至数据库R_1。数据库R_1对待处理数据查询请求进行处理,处理完后向负载均衡组件HA反馈处理结果和处理时长。
3.4、负载均衡组件HA根据处理时长更新签名库。
3.5、负载均衡组件HA将处理结果返回至客户端Client A。
负载均衡组件HA根据处理时长更新签名库的具体方法如下:
当已处理的待处理数据查询请求的处理时长大于等于时间阈值,表明该已处理的待处理数据查询请求为慢查询,处理时间较长,基于已处理的待处理数据查询请求的签名和处理该请求的数据库的数据库地址,生成签名相关信息,并将该签名相关信息发送至签名库,更新该签名库。进一步的,针对待处理数据查询请求的处理时长大于等于时间阈值的情况,还可以获得已处理的待处理数据查询请求的处理时长,以及该已处理的待处理数据查询请求的签名的失效时间,基于移除的待处理数据查询请求的签名、失效时间及处理该待处理数据查询请求的处理时长、数据库地址,生成签名相关信息并更新签名库。即签名相关信息中不仅可以包含签名和数据库地址,还可以包含处理时长和失效时间。当签名相关信息中的失效时间达到时,签名库自动进行更新,删除该签名相关信息,减少签名库的数据占用量。其中,签名相关信息的失效时间可以根据缓存数据失效时间和/或处理时长来进行设置,例如,可以将缓存数据的失效时间设置为对应签名相关信息的失效时间,或者,将签名相关信息的失效时间设置为大于等于处理时长。
具体实施过程中,负载均衡组件HA还可以根据待处理数据查询请求的请求频率更新签名库。当待处理数据查询请求的请求频率大于等于频率阈值时,基于该待处理数据查询请求的签名及处理该待处理数据查询请求的数据库地址,生成签名相关信并将该签名相关信息发送到签名库,以对签名库进行更新。
请参考图4,为签名库中存在目标签名时,待处理数据查询请求的处理流程。客户端Client B通过负载均衡组件HA与数据库R_2建立连接后,客户端Client B发送待处理数据查询请求后执行如下步骤:
4.1、负载均衡组件HA执行对接收到的待处理数据查询请求进行签名计算,获得待处理数据查询请求的签名。
4.2、将计算获得的签名发送到签名库中进行对比,判断签名库中是否存在相似或相同的签名。此时,获得的判断结果为:签名库中存在与该数据访问请求的签名之间相似度在设定阈值范围内的目标签名(即,与待处理数据查询请求的签名相似或相同的签名),进而执行4.3。
4.3、获得签名库中目标签名对应的签名相关信息中的数据库地址,将待处理数据查询请求发送至该数据库地址对应的数据库R_1进行处理,而非发送给数据库R_2处理。数据库R_1对待处理数据查询请求进行处理,处理完后向负载均衡组件HA反馈处理结果和处理时长。
4.4、负载均衡组件HA更新签名库。更新签名库的具体方法同前,可以根据处理时长和/或待处理数据查询请求的请求频率进行更新。
4.5、负载均衡组件HA将处理结果返回至客户端Client B。
上述处理步骤中,由于签名库的存在,待处理数据查询请求会被负载均衡组件HA更合理的分发如步骤4.3,即之后的请求会利用之前请求在数据库实例上的全部或部分缓存结果加速,从而大大提高了整体的待处理数据查询请求的处理速度。
在具体实施过程中,S21和S22涉及待处理数据查询请求的签名及签名相似度,本说明书实施例提供如下三种方式进行签名及签名相似度的计算:
方式一
基于待处理数据查询请求的查询内容,将待处理数据查询请求映射为一个向量,将待处理数据查询请求的向量作为其签名。
例如:待处理数据查询请求中包含通常包含查询名称、过滤条件、操作名称等,将查询名称、过滤条件、操作名称等映射为一个向量A={a1,a2,a3,…}。同样的,签名库中的签名,也按照该方法对已处理过的待处理数据查询请求进行映射获得向量B={b1,b2,b3,…}。
针对上述方法获得的签名,签名之间的相似度可以通过计算对应两个向量之间的夹角获得,两个向量之间的夹角越接近零相似度越大。具体的,可以获得两个向量之间的夹角作为两个向量对应的两个签名之间的相似度,也可以获得两个向量之间的夹角余弦值作为两个向量对应的两个签名之间的相似度。例如,可以通过如下公式获得相似度:
Similarity(A,B)=(A·B)/∣A∣×∣B∣ 方式一
其中,在与签名库中的签名进行对比时,A表示待处理数据查询请求的签名,B表示签名库中的签名。
方式二
枚举待处理数据查询请求的种类,对各种类型的待处理数据查询请求进行枚举并编码;获得待处理数据查询请求的类型对应的编码作为其签名。签名之间的相似度则可以两个签名的编码看作数值,获得两个签名之间的数值差异作为两个签名之间的相似度。具体的,可以通过下述公式二计算获得数值差异。
方式三
请参考图5,为一种获得待处理数据查询请求签名的方法,包括:
S51:获得影响查询速度的n个目标参数的参数排序,n为正整数。
具体的,待处理数据查询请求通常由SQL(Structured Query Language,结构化查询语言)实现,如数据库查询请求。SQL语句中包含操作、列名称、表名称、过滤条件、排序以及计算操作等等,由于缓存通常是根据列名称以及过滤条件来进行,列名称以及过滤条件会影响到查询速度,所以针对待处理数据查询请求的签名可以提取SQL语句中受缓存影响的列名称作为目标参数,其中列表名称包含多个。
按照n个目标参数影响查询速度的权重对n个目标参数进行排序,获得其参数排序。考虑到数据存储过程中的聚集索引、索引、前缀索引等情况,各个目标参数的权重及排序定义如下:
1)、列名称中的主键具有更高的权重;
2)、索引所包含的列具有更高的权重;
3)、在多个索引中出现的列比仅在单个索引中出现的列具有更高的权重;
4)、权重相同的情况下在索引中排位靠前的列具有更高的排序。
例如:假设获得n个目标参数包含列名称:Id和Column1~Column7,根据上述定义,各列名称的权重设置及最终排序位置如下表一所示:
列名称 | 权重 | 说明 | 最终排序位置 |
Id | 1 | 主键 | 2 |
Column1 | 2 | 在两条索引中出现 | 1 |
Column2 | 1 | 在一条索引中出现 | 3 |
Column3 | 1 | 在一条索引中出现 | 4 |
Column4 | 0 | 没有任何索引 | 6 |
Column5 | 1 | 在一条索引中出现 | 5 |
Column6 | 0 | 没有任何索引 | 7 |
Column7 | 0 | 没有任何索引 | 8 |
表一
根据各列名称的权重,得到列名称的排序如下:
Column2,Id,Column1,Column3,Column5,Column6,Column7
S52:获得待处理数据查询请求中包含的m个目标参数及过滤条件,m为正整数,m≤n。
一个待处理数据查询请求的SQL语句中包含n个目标参数中的部分或全部参数,即一个待处理数据查询请求中包含的目标参数个数m小于等于所有待处理数据查询请求包含的目标参数个数n。m个目标参数通常与SQL中的过滤语句一起形成过滤条件,如select id,column2,column3from table_a where column1=something and column2=something。
S53:基于m个目标参数、参数排序及过滤条件,获得待处理数据查询请求的编码作为待处理数据查询请求的签名。
具体的,将过滤条件中select后面的子句当成经度,将where后的过滤子句当成纬度。对于一待处理数据查询请求,SQL中select子句按照参数排序,如果包含某目标参数则为1,否则为0。同理对于where子句按照参数排序,如果包含某目标参数则为1否则为0。最后将select子句形成的编码放在奇数位,where子句形成的编码放在偶数位得到最后的二进制序列编码,将其作为该待处理数据查询请求的签名。
例如:假设获得的n个目标参数的参数排序为:Column2,Id,Column1,Column3,Column5,Column6,Column7;一待处理数据查询请求的过滤语句为:
select id,column2,column3from table_a where column1=something andcolumn2=something;
select子句构成排列1101000;
where子句构成排列1010000;
将两者按照奇偶的顺序插值得到的签名为:11100110000000。
采用上述方式三计算获得待处理数据查询请求的签名,能够保证:1)、用到相似索引的列具有较高的相似度;2)、查询相似的列的语句具有较高的相似度;3)、完全没有用到索引的语句如果过滤条件类似,也具有较高的相似度,为此基于该方法获得签名判断相似签名的准确度较高。对于上述方式三获得的待处理数据查询请求的签名,签名的相似度计算方法可以为:
将签名看成一个二进制数,通过计算签名A与签名B的数值差异得出相似度,相似度计算公式为:
Similarity(A,B)=1-Abs(A-B)/(A+B) 公式二
在与签名库中的签名进行对比时,A表示待处理数据查询请求的签名,B表示签名库中的签名。
通过本说明书中上述实施例提供的一种数据查询方法,可以在SQL级别上进行附在均衡策略,能够在更细的力度上做更好的负载均衡。并且,上述数据查询方法,通过签名的相似度来计算SQL语句的相似度,进而对SQL语句进行动态负载均衡,充分利用了主机的缓存资源,大大提高了查询速度。
请参考图6,基于上述实施例提供的一种数据查询方法,本实施例还对应提供一种数据查询装置,包括:
计算单元61,用于获得待处理数据查询请求的签名;
判断单元62,用于判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
获取单元63,用于在所述签名库中存在所述目标签名的情况下,获得所述目标签名对应的所述签名相关信息中的数据库地址;
分配单元64,用于将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
作为一种可选的实施方式,所述计算单元61,可以通过如下任一方式计算获得待处理数据查询请求的签名:
方式一、基于所述待处理数据查询请求的查询内容,将所述待处理数据查询请求映射为一个向量,将所述向量作为所述签名。
方式二、枚举待处理数据查询请求的种类,对各种类型的待处理数据查询请求进行枚举并编码;获得所述待处理数据查询请求的类型对应的编码作为所述签名。
方式三、获得影响查询速度的n个目标参数的参数排序;获得所述待处理数据查询请求中包含的m个目标参数和过滤条件,n、m为正整数,m≤n;基于所述m个目标参数、所述参数排序及所述过滤条件,获得所述待处理数据查询请求的编码作为所述签名。
具体实施过程中,上述装置还包括:相似度计算单元65。当所述签名为所述待处理数据查询请求对应的向量时,相似度计算单元65用于获得两个向量之间的夹角作为所述两个向量对应的两个签名之间的相似度65。当所述签名为所述待处理数据查询请求的编码时,相似度计算单元,用于将所述待处理数据查询请求的签名和所述签名库中的签名作为数值,获得所述待处理数据查询请求的签名与所述签名库中的签名之间的数值差异作为两个签名之间的相似度。
作为一种可选的实施方式,所述获取单元63还用于:获得处理时间大于等于时间阈值的或者获得请求频率大于等于频率阈值的已处理数据查询请求;所述装置还包括:生成单元66,用于基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库。
具体的,所述生成单元66包括:获取子单元和生成子单元。获取子单元,用于获得所述已处理数据查询请求的处理时长,以及所述已处理数据查询请求的签名的失效时间;生成子单元,用于基于所述已处理数据查询请求的签名、所述数据库地址、所述处理时长及所述失效时间,生成所述签名相关信息并存入所述签名库。
在具体实施过程中,所述待处理数据查询请求由结构化查询语言SQL实现。影响查询速度的n个目标参数包括:所述结构化查询语言SQL中的n个列名称。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关方法的实施例中进行了详细描述,此处不再详细阐述。
请参考图7,是根据一示例性实施例示出的一种用于实现数据查询方法的电子设备700的框图。例如,电子设备700可以是计算机,数据库控制台,平板设备,个人数字助理等。
参照图7,电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,输入/输出(I/O)的接口710,以及通信组件712。
处理组件702通常控制电子设备700的整体操作,诸如与显示,数据通信,及记录操作相关联的操作。处理元件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。
存储器704被配置为存储各种类型的数据以支持在设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理***,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
I/O接口710为处理组件702和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
通信组件712被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件712经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件712还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得电子设备能够执行一种数据查询方法,所述方法包括:
获得待处理数据查询请求的签名;判断签名库中是否存在与所述签名相似度大于设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据查询方法,其特征在于,所述方法包括:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
2.如权利要求1所述的方法,其特征在于,所述获得待处理数据查询请求的签名包括:
获得影响查询速度的n个目标参数的参数排序;
获得所述待处理数据查询请求中包含的m个目标参数和过滤条件,n、m为正整数,m≤n;
基于所述m个目标参数、所述参数排序及所述过滤条件,获得所述待处理数据查询请求的编码作为所述签名。
3.如权利要求1所述的方法,其特征在于,所述获得待处理数据查询请求的签名包括:
枚举待处理数据查询请求的种类,对各种类型的待处理数据查询请求进行枚举并编码;
获得所述待处理数据查询请求的类型对应的编码作为所述签名。
4.如权利要求2或3所述的方法,其特征在于,当所述签名为所述待处理数据查询请求的编码时,所述方法还包括:
将所述待处理数据查询请求的签名和所述签名库中的签名作为数值,获得所述待处理数据查询请求的签名与所述签名库中的签名之间的数值差异作为两个签名之间的相似度。
5.如权利要求1所述的方法,其特征在于,所述获得待处理数据查询请求的签名包括:
基于所述待处理数据查询请求的查询内容,将所述待处理数据查询请求映射为一个向量,将所述向量作为所述签名。
6.如权利要求5所述的方法,其特征在于,当所述签名为所述待处理数据查询请求对应的向量时,所述方法还包括:
获得两个向量之间的夹角作为所述两个向量对应的两个签名之间的相似度。
7.如权利要求1~6任一所述的方法,其特征在于,所述方法还包括:
获得处理时间大于等于时间阈值的或者获得请求频率大于等于频率阈值的已处理数据查询请求;
基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库。
8.如权利要求7所述的方法,其特征在于,所述基于所述已处理数据查询请求的签名、执行处理操作的数据库地址,生成所述签名相关信息并存入所述签名库,包括:
获得所述已处理数据查询请求的处理时长,以及所述已处理数据查询请求的签名的失效时间;
基于所述已处理数据查询请求的签名、所述数据库地址、所述处理时长及所述失效时间,生成所述签名相关信息并存入所述签名库。
9.如权利要求2所述的方法,其特征在于,所述待处理数据查询请求由结构化查询语言SQL实现。
10.如权利要求9所述的方法,其特征在于,所述n个目标参数包括:所述结构化查询语言SQL中的n个列名称。
11.一种数据查询装置,其特征在于,包括:
计算单元,用于获得待处理数据查询请求的签名;
判断单元,用于判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
获取单元,用于在所述签名库中存在所述目标签名的情况下,获得所述目标签名对应的所述签名相关信息中的数据库地址;
分配单元,用于将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
13.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获得待处理数据查询请求的签名;
判断签名库中是否存在与所述签名相似度在设定阈值范围内的目标签名,其中,所述签名库用于存储已处理数据查询请求的签名相关信息;
若所述签名库中存在所述目标签名,获得所述目标签名对应的所述签名相关信息中的数据库地址;
将所述待处理数据查询请求发送至所述数据库地址对应的数据库,通过所述数据库对所述待处理数据查询请求进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744290.4A CN110019289B (zh) | 2017-08-25 | 2017-08-25 | 一种数据查询方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744290.4A CN110019289B (zh) | 2017-08-25 | 2017-08-25 | 一种数据查询方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019289A true CN110019289A (zh) | 2019-07-16 |
CN110019289B CN110019289B (zh) | 2023-10-03 |
Family
ID=67186124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744290.4A Active CN110019289B (zh) | 2017-08-25 | 2017-08-25 | 一种数据查询方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019289B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035923A (zh) * | 2013-03-04 | 2014-09-10 | 阿里巴巴集团控股有限公司 | 查询数据的方法及装置 |
CN104782137A (zh) * | 2012-11-23 | 2015-07-15 | 索尼公司 | 信息处理装置与信息处理方法 |
CN106104480A (zh) * | 2014-04-03 | 2016-11-09 | 斯特拉托斯卡莱有限公司 | 使用相似性保留签名的集群范围的内存管理 |
US20170083575A1 (en) * | 2015-09-23 | 2017-03-23 | International Business Machines Corporation | Query hint learning in a database management system |
CN107085594A (zh) * | 2017-03-14 | 2017-08-22 | 武汉大学 | 大图数据库中基于集合相似度的子图匹配方法 |
-
2017
- 2017-08-25 CN CN201710744290.4A patent/CN110019289B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104782137A (zh) * | 2012-11-23 | 2015-07-15 | 索尼公司 | 信息处理装置与信息处理方法 |
CN104035923A (zh) * | 2013-03-04 | 2014-09-10 | 阿里巴巴集团控股有限公司 | 查询数据的方法及装置 |
CN106104480A (zh) * | 2014-04-03 | 2016-11-09 | 斯特拉托斯卡莱有限公司 | 使用相似性保留签名的集群范围的内存管理 |
US20170083575A1 (en) * | 2015-09-23 | 2017-03-23 | International Business Machines Corporation | Query hint learning in a database management system |
CN107085594A (zh) * | 2017-03-14 | 2017-08-22 | 武汉大学 | 大图数据库中基于集合相似度的子图匹配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110019289B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102770849B (zh) | 当应用基于用户的安全性时优化数据高速缓存 | |
CN103608809B (zh) | 推荐数据富集 | |
CN103544153B (zh) | 一种基于数据库的数据更新方法和*** | |
US10534753B2 (en) | Caseless file lookup in a distributed file system | |
CN108388604A (zh) | 用户权限数据管理装置、方法及计算机可读存储介质 | |
US10909086B2 (en) | File lookup in a distributed file system | |
US11157299B2 (en) | Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support | |
US10572506B2 (en) | Synchronizing data stores for different size data objects | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
US11663207B2 (en) | Translation of tenant identifiers | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
US11249968B2 (en) | Large object containers with size criteria for storing mid-sized large objects | |
WO2014137258A1 (en) | Selection of data storage settings for an application | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN115918110A (zh) | 使用键值存储库的空间搜索 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
US11151110B2 (en) | Identification of records for post-cloning tenant identifier translation | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
US20200082011A1 (en) | Bidirectional replication of clustered data | |
CN110019289A (zh) | 一种数据查询方法、装置及电子设备 | |
US11580082B2 (en) | Object storage system with control entity quota usage mapping | |
CN110297842B (zh) | 一种数据比对方法、装置、终端和存储介质 | |
CN110597849B (zh) | 数据查询方法及装置 | |
CN102214202A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010847 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |