数据库查询方法和装置制造方法及图纸

技术编号:9927866 阅读:69 留言:0更新日期:2014-04-16 18:48
本发明专利技术实施例提供一种数据库查询方法和装置。一种数据库查询方法,包括:接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;根据所述查询ID确定预先存储的查询计划;根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;向所述数据库客户端发送查询结果。本发明专利技术实施例的技术方案查询效率较高,适用于高集中度和高性能的查询。

【技术实现步骤摘要】
数据库查询方法和装置
本专利技术实施例涉及通信技术,尤其涉及一种数据库查询方法和装置。
技术介绍
在需要采用数据库查询的业务处理过程中,经常要对某些特定数据进行高集中度和高性能的查询,待查询的数据可能需要多表关联的查询。其中,高集中度的查询是指查询规则变化比较少,都是少数几类查询,高性能的查询是指这类查询要求快速响应,且每秒需要执行的次数非常多,例如十万次或者更多。举例来说,事件营销领域对特定客户的客户统一视图的查询,其查询条件就是客户标识,查询结果返回的则是特定的若干客户视图中的属性(含子表记录)。再比如流式汇总,对每个事件,要先关联汇总的目标记录,同样需要做高性能查询。在现有数据库查询方式中,此类查询往往基于结构化查询语言(StructuredQueryLanguage,以下简称:SQL)语句,通过关联多张表实现。每次查询时,业务系统可以将SQL语句和查询参数传递到数据库服务器,例如可以通过调用部署在该业务系统上的数据库客户端来发送该SQL语句和查询参数。数据库服务器解析SQL语句,或者重用原来的查询计划,从硬盘中加载数据,或者使用缓存中的数据,执行数据表关联等一系列操作,然后向业务系统返回查询结果,并同时返回查询结果的元数据信息。但是,现有数据库查询方式在处理这种高集中度和高性能的查询时,处理能力有限,无法满足用户的需求。
技术实现思路
本专利技术实施例提供一种数据库查询方法和装置。第一方面,提供一种数据库查询方法,包括:接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;根据所述查询ID确定预先存储的查询计划;根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;向所述数据库客户端发送查询结果。第二方面,提供另一种数据库查询方法,包括:向数据库服务器发送查询请求,所述查询请求中包含查询标识ID和查询参数,以使所述数据库服务器根据所述查询ID确定预先存储的查询计划,并根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;接收所述数据库服务器发送的查询结果。第三方面,提供一种数据库服务器,包括:接收模块,用于接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;确定模块,用于根据所述查询ID确定预先存储的查询计划;查询模块,用于根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;发送模块,用于向所述数据库客户端发送查询结果。第四方面,提供一种数据库客户端,包括:发送模块,用于向数据库服务器发送查询请求,所述查询请求中包含查询标识ID和查询参数,以使所述数据库服务器根据所述查询ID确定预先存储的查询计划,并根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;接收模块,用于接收所述数据库服务器发送的查询结果。本专利技术实施例中,业务系统可以通过调用数据库客户端预先在数据库服务器中注册查询ID和与该查询ID对应的查询计划,并且该查询ID对应的查询数据还可以预先缓存在内存中。当进行数据查询时,数据库客户端只需要传递查询ID和查询参数到数据库服务器;对于数据库服务器,则利用该查询ID即可确定预先存储的查询计划,并根据查询参数和确定的查询计划,在预先缓存的数据中执行数据查询,进而向数据库客户端反馈查询结果。该数据库查询过程无需同现有技术在每次查询时均需要传递SQL语句,也无需对SQL语句进行解析,更无需在解析后再去硬盘中进行数据查询和数据结构组织等操作,因此,本实施例的技术方案查询效率较高,适用于高集中度和高性能的查询。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术数据库查询方法实施例一的流程图;图2为本专利技术数据库查询方法实施例二的流程图;图3为本专利技术数据库查询方法实施例三的流程图;图4为本专利技术数据库服务器实施例一的结构示意图;图5为本专利技术数据库服务器实施例二的结构示意图;图6为本专利技术数据库客户端实施例的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术数据库查询方法实施例一的流程图,如图1所示,本实施例的方法可以包括:S101、接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;S102、根据所述查询ID确定预先存储的查询计划;S103、根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;S104、向所述数据库客户端发送查询结果。本实施例中,查询ID为业务系统通过数据库客户端预先在数据库服务器中注册的,该数据库客户端可以部署在业务系统上。当业务系统启动,或者业务规则变更时,业务系统需要发起查询的预注册,业务系统把查询ID和对应的查询逻辑告知数据库客户端,数据库客户端则把查询ID和对应的查询逻辑告知数据库服务器。然后,数据库服务器即可基于对应的查询逻辑,把要查询的数据预先加载到缓存中,并根据查询逻辑组织待查询数据的结构。可选的,数据库服务器可以结合多个不同的查询ID对数据的结构进行综合优化。例如合并类似的查询,合并相同的关联关系等,让多个查询共享索引结构和缓存数据。然后,数据库服务器即可生成该查询ID对应的查询计划。优选地,数据库服务器可以将缓存的数据对应的元数据结构反馈给数据库客户端,这样在后续查询时,无需每次都要反馈元数据结构,而只需要返回实际的数据即可。举例来说,业务系统要做三个不同的查询:第一个查询要查询的属性分散在三张表中,包含一张主表和两个1:N子表;第二个查询要查询的属性全部在一张主表中;第三个查询要查询的属性全部在1张1:N子表中。业务系统对这三个查询分别分配查询ID为101、102、103,然后构造这三个查询逻辑(也可能是系统开发期就确定的,或者系统执行规则变更后基于系统规则计算出的)。其中第一个查询逻辑如果用SQL表示,则需要三个SQL语句,后面两个分别是一个SQL语句,每个查询逻辑都包含查询ID所对应查询的数据的属性描述信息。业务系统可以将查询ID和对应的查询逻辑传递给数据库客户端,进而通过数据库客户端传递给数据库服务器。数据库服务器即可根据该查询逻辑组织数据,例如针对101这个查询ID,需要将一张主表和两个1:N子表进行关联,然后将数据预先进行缓存,并生成与查询标识对应的查询计划,该查询计划即描述了基于数据库客户端传递而来的查询参数进行数据查询时的具体查询方式。在数据查询时,数据库服务器可以接收数据库客户端发送的查询请求,该查询请求中可以包含查询ID和查询参数。其中,查询参数即为预先在数据库服务器中注册的查询ID,查询参数例如可以是客户标识等入口参数。接着,数据库服务器可以基于查询ID,确定预先存储的与该查询ID对应的查询计划,从而可以确定基于该查询本文档来自技高网...
数据库查询方法和装置

【技术保护点】
一种数据库查询方法,其特征在于,包括:接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;根据所述查询ID确定预先存储的查询计划;根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;向所述数据库客户端发送查询结果。

【技术特征摘要】
1.一种数据库查询方法,其特征在于,包括:接收数据库客户端发送的查询请求,所述查询请求中包含查询标识ID和查询参数;根据所述查询ID确定预先存储的查询计划;根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;向所述数据库客户端发送查询结果;所述接收数据库客户端发送的查询请求之前,还包括:接收数据库客户端发送的查询ID和查询逻辑,所述查询逻辑中包含所述查询ID所对应查询数据的属性描述信息;对所述属性描述信息对应的数据进行缓存;生成与缓存的数据对应的查询计划和查询索引,并将所述查询ID与所述查询计划进行关联;向所述数据库客户端发送与所述缓存的数据对应的元数据结构。2.根据权利要求1所述的方法,其特征在于,所述根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询,包括:根据所述查询参数,确定查询索引;根据所述查询索引,确定查询地址,并将所述查询地址处保存的数据拷贝到输出缓冲区;所述向所述数据库客户端发送查询结果,包括:将所述输出缓冲区中的数据发送给所述数据库客户端。3.根据权利要求2所述的方法,其特征在于,所述根据所述查询索引,确定查询地址,并将所述查询地址处保存的数据拷贝到输出缓冲区,包括:根据所述查询索引,确定至少两个查询地址,其中,每个查询地址对应一张数据表中的存储地址;根据各查询地址,从对应的数据表中查找数据,并将从各数据表中查找到的数据拷贝到输出缓冲区。4.根据权利要求1所述的方法,其特征在于,所述对所述属性描述信息对应的数据进行缓存,包括:根据所述属性描述信息,对至少两个数据表进行关联;将关联的数据表进行缓存。5.一种数据库查询方法,其特征在于,包括:向数据库服务器发送查询请求,所述查询请求中包含查询标识ID和查询参数,以使所述数据库服务器根据所述查询ID确定预先存储的查询计划,并根据所述查询参数和确定的查询计划,在预先缓存的数据中执行数据查询;接收所述数据库服务器发送的查询结果;所述向数据库服务器发送查询请求之前,还包括:向所述数据库服务器发送查询ID和查询逻辑,所述查询逻辑中包含所述查询ID所对应查询数据的属性描述信息,以使所述数据库服务器对所述属性描述信息对应的数据进行缓存,生成与缓存的数据对应的查询计划和查询索引,并将所述查询ID与所述查询计划进行关联;接收所述数据库服务器发送的与所述缓存的数据对应的元数据结构。6.一种数据库服务器,其特征在于,包...

【专利技术属性】
技术研发人员:金中良
申请(专利权)人:华为软件技术有限公司
类型:发明
国别省市:江苏;32

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

1