一种查询方法技术

技术编号:37176994 阅读:9 留言:0更新日期:2023-04-20 22:45
本申请涉及计算机通信领域,尤其设计一种查询方法。该方法包括:接收客户端通过全双工通信连接发送的查询请求,依据查询请求的查询参数,将查询请求划分为多个查询分片;将多个查询分片放入优先级不同的多个队列;针对线程池中的每个线程,通过线程从满足预设条件的队列中读取目标查询分片,并对目标查询分片执行查询操作以获取查询结果;其中,查询操作包括:检测高速缓存数据库中是否存在目标查询分片的查询结果,若是,则从高速缓存数据库中获取查询结果;若否,则从业务数据库中查找目标查询分片对应的查询结果,并将查询结果写入至高速缓存数据库;将查询结果通过全双工通信连接发送给客户端,从而提高查询效率。从而提高查询效率。从而提高查询效率。

【技术实现步骤摘要】
一种查询方法


[0001]本申请涉及计算机通信领域,尤其涉及一种查询方法。

技术介绍

[0002]随着互联网、大数据的发展,数据查询速度变得越来越重要。现有的数据查询方式是客户端向服务器发送查询请求,服务器依据查询请求中的查询参数,从业务数据库中查找与该查询参数对应的数据,并将查找到的数据作为查询结果返回给客户端。
[0003]然而,当查询参数对应的待查找的数据量巨大时,就会花费大量的时间来进行查询,致使客户端无法及时获取到想要查询的数据。

技术实现思路

[0004]本申请提供一种查询方法,可以使得客户端快速获取其想要查询的数据。
[0005]根据本申请的第一方面,提供一种查询方法,所述方法应用于存储系统的服务器,所述存储系统还包括高速缓存数据库和业务数据库,所述方法包括:接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片;将所述多个查询分片放入优先级不同的多个队列;针对线程池中的每个线程,通过该线程从满足预设条件的队列中读取目标查询分片,并对该目标查询分片执行查询操作以获取查询结果;其中,所述查询操作包括:检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果,若是,则从所述高速缓存数据库中获取所述查询结果;若否,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库;将所述查询结果通过所述全双工通信连接发送给所述客户端。
[0006]可选地,在所述将所述多个查询分片放入优先级不同的多个队列之前,所述方法还包括:在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,执行所述将多个查询分片放入优先级不同的多个队列的步骤;所述方法还包括:在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。
[0007]可选地,所述查询参数为查询时段;所述依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片,包括:依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻;依据所述目标标准时刻、所述第一预设时间间隔和第二预设时间间隔,将所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片;其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时
刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。
[0008]可选地,所述依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻,包括:确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一时间间隔确定至少一个标准时刻;从至少一个标准时刻中,挑选出与所述起始时间的距离最近、且晚于所述起始时间的标准时刻,并将挑选出的标准时刻作为目标标准时刻。
[0009]可选地,所述多个队列包括普通队列,各普通队列的优先级不同;所述查询参数为查询时段;所述将所述多个查询分片放入优先级不同的多个队列,包括:按照各查询分片的时间段从后到前的顺序、以及各普通队列优先级从高到低的顺序,向每个普通队列存储该普通队列所支持的固定数量的查询分片;若在每个普通队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,则将未被存储的查询分片存储至优先级最低的普通队列。
[0010]可选地,所述通过该线程从满足预设条件的队列中读取目标查询分片,包括:检测线程共有锁是否被占用;若未被占用,则为该线程占用所述共有锁;在占用所述共有锁后,通过该线程从所述队列中读取目标查询分片。
[0011]可选地,在占用所述共有锁后,所述方法还包括:检测所述满足预设条件的队列的查询分片的数量是否高于预设数量阈值;若是,则在所述线程池中建立新的线程。
[0012]可选地,在所述从业务数据库中查找该目标查询分片对应的查询结果之前,包括:检测与该目标查询分片关联的查询分片是否有查询结果;其中所述关联的查询分片与所述目标查询分片属于同一查询请求;若该目标查询分片关联的查询分片有查询结果,则执行所述从业务数据库中查找该目标查询分片对应的查询结果的步骤;所述方法还包括:若该目标查询分片关联的查询分片无查询结果,则在确定该目标查询分片是其对应的查询请求的最后一个查询分片时,将该查询分片划分为多个查询子分片,并将所述查询子分片存储至所述保留队列。
[0013]可选地,所述方法还包括:当监听到查询到了保留队列中的查询子分片的查询结果时,将保留队列的其他查询子分片从该保留队列中移除,并将其他查询子分片存储至普通队列。
[0014]可选地,所述预设条件的队列包括:优先级最高且存在查询分片的队列;或者,优先级高于预设阈值且存在查询分片的队列。
[0015]由上述描述可知,本申请基于查询请求中的查询参数,将查询请求切分成多个查询分片,并将多个查询分片放入优先级不同的任务队列中。多个线程可以从任务队列中获取查询分片,多个线程可以并行执行查询操作。由于多个线程可以并发地对查询分片执行查询操作,所以会大大提高查询效率。
[0016]此外,本申请还在存储系统中增加了高速缓存数据库,线程在执行查询操作时,可以先查找高速缓存数据库中是否有查询结果,若没有查询结果,才进一步从业务数据库中获取查询结果。由于增设了高速缓存数据库,所以提高了查询操作的执行速度。
[0017]此外,在本申请中,客户端和服务器之间还建立全双工通信连接。由于全双工通信连接具有通信双方可以实时双向传输数据的特性,所以使得服务器在查找到查询分片的查询结果后可以主动发送给客户端,使得客户端可以及时获得全部或者部分查询结果,提高了用户的用户体验。
附图说明
[0018]图1是本申请一示例性实施例示出的一种传统的组网架构示意图;图2是本申请一示例性实施例示出的一种组网架构图;图3是本申请一示例性实施例示出的一种查询方法的流程示意图;图4是本申请一示例性实施例示出的一种子时段划分方式的流程图;图5是本申请一示例性实施例示出的一种查询分片的分配方法的流程图;图6是本申请一示例性实施例示出的一种电子设备硬件结构图;图7是本申请一示例性实施例示出的一种查询装置的框图。
具体实施方式
[0019]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
[0020]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种查询方法,其特征在于,所述方法应用于存储系统的服务器,所述存储系统还包括高速缓存数据库和业务数据库,所述方法包括:接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片;将所述多个查询分片放入优先级不同的多个队列;针对线程池中的每个线程,通过该线程从满足预设条件的队列中读取目标查询分片,并对该目标查询分片执行查询操作以获取查询结果;其中,所述查询操作包括:检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果,若是,则从所述高速缓存数据库中获取所述查询结果;若否,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库;将所述查询结果通过所述全双工通信连接发送给所述客户端。2.根据权利要求1所述的查询方法,其特征在于,在所述将所述多个查询分片放入优先级不同的多个队列之前,所述方法还包括:在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,执行所述将所述多个查询分片放入优先级不同的多个队列的步骤;所述方法还包括:在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。3.根据权利要求1所述的查询方法,其特征在于,所述查询参数为查询时段;所述依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片,包括:依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻;依据所述目标标准时刻、所述第一预设时间间隔和第二预设时间间隔,将所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片;其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。4.根据权利要求3所述的查询方法,其特征在于,所述依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻,包括:确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一...

【专利技术属性】
技术研发人员:耿志虎
申请(专利权)人:北京锐服信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1