一种数据查询方法、装置、服务器及存储介质制造方法及图纸

技术编号:21628354 阅读:26 留言:0更新日期:2019-07-17 10:54
本发明专利技术公开了一种数据查询方法、装置、服务器及存储介质。该方法包括:获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。通过上述技术方案,实现了减少数据处理过程中的内存占用,提高数据查询的效率。

A Data Query Method, Device, Server and Storage Media

【技术实现步骤摘要】
一种数据查询方法、装置、服务器及存储介质
本专利技术实施例涉及数据库
,尤其涉及一种数据查询方法、装置、服务器及存储介质。
技术介绍
近年来随着计算机及信息技术的发展,利用数据库来进行海量数据的存储,已经成为必然的趋势,并且得到了广泛的应用。在对数据库中的数据进行管理时,通常要根据实际需求从大量的数据中查询目标数据以做出进一步的处理,排序查询是数据库中常见的一种查询方法,利用结构化查询语言(StructuredQueryLanguage,SQL)中的ORDERBY子句可指定对数据进行排序查询操作。例如,通过SELECT*FROMTORDERBYC1;语句,可指定对数据表T中的数据按指定的排序列C1列由小到大进行排序,并将排序后的数据或部分数据作为查询结果。目前,排序查询方法的具体实现过程是:将数据表T中的所有行数据读入内存,在内存中按照指定的排序列进行排序,然后根据排序结果返回最终要查询的数据。例如,对数据表T中的数据进行排序查询,该数据表有20列(C1、C2……C20),对于以下形式的查询语句:SELECTTOP10C1,C2,C3,C4,C5,C6FROMTORDERBYC1;语句中的TOP10指返回排序结果的前10行数据,即返回数据表中的数据按C1列从小到大排序后的前10行数据的C1到C6列。目前的排序方法需要将数据表T中的所有行的C1到C6列数据都读入内存,然后按照C1列进行排序,排序完成后取前10行作为结果。但实际上,需要参与排序比较的只是C1列数据,而从数据表T中读取C1到C6列的数据,并且这6列数据在排序过程中都要参与移动或拷贝,占用了过多不必要的内存,易造成剩余内存不足、运行卡顿等,导致数据查询的效率低下。
技术实现思路
本专利技术提供了一种数据查询方法、装置、服务器及存储介质,以实现减少数据处理过程中的内存占用,提高数据查询的效率。第一方面,本专利技术实施例提供了一种方法,包括:获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。进一步的,所述预设条件包括:所述查询对象为单个数据表,所述查询项形式为查询结果的行数小于数据表中数据的总行数。进一步的,所述方法还包括:所述查询对象和查询项形式不满足预设条件,则根据所述数据查询语句对指定列和非指定列的所有数据进行排序,根据排序结果生成查询结果。进一步的,所述根据所述数据查询语句对指定列的列数据进行排序,包括:将所述数据查询语句改写为包括父查询、过滤条件和子查询的形式;根据所述子查询的指令对指定列的列数据进行排序。进一步的,所述排序结果包括:所述指定列的列数据的排列顺序和对应的行标识符;所述根据排序结果读取非指定列的列数据,包括:根据所述行标识符读取对应行的非指定列的列数据。进一步的,所述预设条件还包括:所述查询项形式为查询结果的行数小于预设阈值。第二方面,本专利技术实施例提供了一种数据查询装置,包括:查询语句获取模块,用于获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;数据处理模块,用于所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;查询结果生成模块,用于根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。进一步的,所述根据所述数据查询语句对指定列的列数据进行排序,包括:将所述数据查询语句改写为包括父查询、过滤条件和子查询的形式;根据所述子查询的指令对指定列的列数据进行排序。第三方面,本专利技术实施例提供了一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据查询方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据查询方法。本专利技术实施例提供了一种数据查询方法、装置、服务器及存储介质。该方法包括:获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。通过上述技术方案,实现了减少数据处理过程中的内存占用,提高数据查询的效率。附图说明图1为本专利技术实施例一提供的一种数据查询方法的流程图;图2为本专利技术实施例一提供的用户与服务器进行交互的示意图;图3为本专利技术实施例二提供的一种数据查询方法的流程图;图4为本专利技术实施例三提供的一种数据查询装置的结构示意图;图5为本专利技术实施例四提供的一种服务器的硬件结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种数据查询方法的流程图。本实施例可适用于利用SQL语句进行排序查询的情况。具体的,该数据查询方法可以由数据查询装置执行,该数据查询装置可以通过软件和/或硬件的方式实现,并集成在服务器中。进一步的,服务器包括但不限定于:网络服务器、系统后台服务器以及云端服务器。图2为本专利技术实施例一提供的用户与服务器进行交互的示意图。参照图2,在进行数据查询时,用户通过客户端输入数据查询语句,服务器获取该输入查询语句后对其进行解析,生成数据查询指令并执行对应的操作,对数据库中的数据进行查询,最终返回查询结果,并通过客户端向用户展示。参考图1,该数据查询方法具体包括如下步骤:S110、获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式。具体的,数据查询语句是指用于对数据库中的数据进行查询并返回查询结果的SQL语句,其中,排序查询是非常常用的一种数据查询方法,利用SQL语句的ORDERBY子句可执行对数据进行排序、并将排序后的数据作为查询结果的操作。本实施例中的数据查询方法属于排序查询方法,数据查询语句为包含排序子句(ORDERBY子句)的SQL语句。所述数据查询语句包括了查询对象(例如:数据表名称)和查询项形式(例如:查询项为TOPnCa,Cb,…,Cm的形式,即返回排序结果的前n行的Ca,Cb,…,Cm列的列数据)。在获取用户输入的数据查询语句后,对其进行语法和语义解析,可以确定查询对象和查询项形式,例如,确定查询对象是单个数据表还是多个数据表;确定查询项形式是返回排序结果的所有行的数据或是返回排序结果中的前n行的数据。示例性的,对于如下的数据查询语句:SELECTTOP5C2,C3FROMTORDERBYC1;该数据查询语句的查询对象为数据表T,查询项为TOP5C2,C3,其含义是按照指定列C1列将数据表T中的数据由小到大进行排序,并返回排序结果的前5行的C2、C3列的数据,作为查询结果。S120、所述本文档来自技高网
...

【技术保护点】
1.一种数据查询方法,其特征在于,包括:获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:获取包含排序子句的数据查询语句,所述数据查询语句包括查询对象和查询项形式;所述查询对象和查询项形式分别满足预设条件,则根据所述数据查询语句对指定列的列数据进行排序,并根据排序结果读取非指定列的列数据;根据所述排序结果和对非指定列的列数据的读取结果,生成查询结果。2.根据权利要求1所述的方法,其特征在于,所述预设条件包括:所述查询对象为单个数据表,所述查询项形式为查询结果的行数小于数据表中数据的总行数。3.根据权利要求1所述的方法,其特征在于,还包括:所述查询对象和查询项形式不满足预设条件,则根据所述数据查询语句对指定列和非指定列的所有数据按照指定列进行排序,根据排序结果生成查询结果。4.根据权利要求1所述的方法,其特征在于,所述根据所述数据查询语句对指定列的列数据进行排序,包括:将所述数据查询语句改写为包括父查询、过滤条件和子查询的形式;根据所述子查询的指令对指定列的列数据进行排序。5.根据权利要求1所述的方法,其特征在于,所述排序结果包括:所述指定列的列数据的排列顺序和对应的行标识符;所述根据排序结果读取非指定列的列数据,包括:根据所述行标识符读取对应行的非指定列...

【专利技术属性】
技术研发人员:万伟朱仲颖张钦
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

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

1