CN106951531A - 数据查询方法及装置 - Google Patents

数据查询方法及装置 Download PDF

Info

Publication number
CN106951531A
CN106951531A CN201710169770.2A CN201710169770A CN106951531A CN 106951531 A CN106951531 A CN 106951531A CN 201710169770 A CN201710169770 A CN 201710169770A CN 106951531 A CN106951531 A CN 106951531A
Authority
CN
China
Prior art keywords
tuple
data
corresponding data
result
spliced
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
Application number
CN201710169770.2A
Other languages
English (en)
Other versions
CN106951531B (zh
Inventor
贾宏超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201710169770.2A priority Critical patent/CN106951531B/zh
Publication of CN106951531A publication Critical patent/CN106951531A/zh
Application granted granted Critical
Publication of CN106951531B publication Critical patent/CN106951531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据查询方法及装置,其中,所述数据查询方法中,用户发送数据查询指令后,解析该指令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,再将每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后数组,并进行存储,可以保证依据数据查询指令进行操作时,只要读取二元组的排序元素和结果元素,避免了二元组的其他元素被读取而占用高速缓存的空间,进而解决了现有技术中存在因需要从内存中读取二元组的元素而导致的数据查询操作效率低的问题。

Description

数据查询方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据查询方法及装置。
背景技术
数组是计算机中常用的数据结构,该数据结构内的数据在内存中可以实现连续存储,因此,通过数组的内存起始地址和数组元素的下标,可快速定位数组内的元素。
现今,在计算机领域,在进行数据查询操作时,CPU在从内存中取得数据的时候,会将取得数据所在的内存行都读取到高速缓存中,再从高速缓存中读取数据进行数据查询操作。但是,由于高速缓存的容量远远小于内存,若取得的内存行的数据量比较大,会导致高速缓存空间被占满,这样,只能从内存中读取其他行的数据。由于内存的访问速度是远远小于高速缓存的,从内存中读取其他行的数据,就会导致数据查询操作的效率降低。
发明内容
基于上述现有技术的不足,本发明提出一种数据查询方法及装置,以解决现有技术中存在的数据查询操作效率低的问题。
为解决上述问题,现提出的方案如下:
一种数据查询方法,包括:
解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
将每一个二元组的拼接后的数组均放入数组进行存储。
可选地,所述针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据之后,还包括:
分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
其中,所述将所述读取得到的每一个二元组的排序元素对应的数据、和结果元素对应的数据进行拼接,获得拼接后的数组,包括:
针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组进行拼接,获得拼接后的数组。
可选地,所述将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组,包括:
将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
可选地,所述将每一个二元组的拼接后的数组均放入数组进行存储,包括:
将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
可选地,所述解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,之后,还包括:
判断所述每一个二元组的结果元素是否满足预设条件;
若判断出二元组的结果元素满足预设条件,则所述读取所述二元组的结果元素对应的数据,包括:读取所述二元组的结果元素的存储地址;
若判断出二元组的结果元素不满足预设条件,则执行读取所述二元组的结果元素对应的数据的步骤。
可选地,所述判断所述每一个二元组的结果元素是否满足预设条件,包括:
判断所述每一个二元组的结果元素的数量是否超过第一预设阈值;
或者,判断所述每一个二元组的结果元素对应的数据的数据量是否超过第二预设阈值。
一种数据查询装置,包括:
解析单元,用于解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
读取单元,用于针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
拼接单元,用于将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
存储单元,用于将每一个二元组的拼接后的数组均放入数组进行存储。
可选地,还包括:
转换单元,用于在针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据之后,分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
其中,所述拼接单元,包括:
第一拼接单元,用于针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组据进行拼接,获得拼接后的数组。
可选地,所述拼接单元,包括:第二拼接单元,用于将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
可选地,所述存储单元,包括:第一存储单元,用于将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
可选地,所述解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,之后,还包括:
判断单元,用于判断所述每一个二元组的结果元素是否满足预设条件;
若所述判断单元判断出二元组的结果元素满足预设条件,所述读取单元包括:第一读取单元,用于读取所述二元组的结果元素的存储地址;
若所述判断单元判断出二元组的结果元素不满足预设条件,则所述判断单元执行读取所述二元组的结果元素对应的数据。
可选地,所述判断单元,包括:
第一判断单元,用于判断所述每一个二元组的结果元素的数量是否超过第一预设阈值;
第二判断单元,用于判断所述每一个二元组的结果元素对应的数据的数据量是否超过第二预设阈值。
本发明提供的数据查询方法中,用户发送数据查询指令后,解析该指令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,再将每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后数组,并进行存储,可以保证依据数据查询指令进行操作时,只要读取二元组的排序元素和结果元素,避免了二元组的其他元素被读取而占用高速缓存的空间,进而解决了现有技术中存在因需要从内存中读取二元组的元素而导致的数据查询操作效率低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例公开的一种数据查询方法的流程图;
图2是本发明另一实施例公开的一种数据查询方法的流程图;
图3为本发明另一实施例公开的数据查询方法的流程图;
图4为本发明另一实施例公开的数据查询装置的结构示意图;
图5为本发明另一实施例公开的数据查询装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现今,在计算机领域经常进行数据查询操作为:定义一个二元组X,包括排序元素和结果元素,将多个二元组按照排序元素排序,然后按照排序后的顺序取出结果元素。例如:定义一个类User,用于表示用户,其中,排序元素为age,用于表示年龄;结果元素为name,用于表示姓名;按照年龄从小到大将用户排序,然后依次取得姓名。
以java语言存储数据为例,user对象数组的内存排列如表一所示。
表一
User1 User2 User3 User4 User5
User1的age User1的name User1其他属性 User1其他属性 User1其他属性
User5的age User5的age User5其他属性 User5其他属性 User5其他属性
User2的age User2的name User2其他属性 User2其他属性 User2其他属性
具体的,定义一个类User的过程的一种实现包括:先构造User的数组,然后比较数组中User元素的age属性,并进行排序,然后依次取name。其中,User数组中的元素是User对象的引用,是存储在java堆内存中。比较数组中User元素的age属性前,需先从java堆内存中读取行数据到高速缓存,如读取上表中的每一行,由于每一行的数据中除排序元素和结果元素外,还包含User的其他属性,这些数据会占据高速缓存的空间,若这些数据的数据量较大,则会导致高速缓存的空间被占满,那会导致所有的行数据不能够都被读取到高速缓存中,就需要从java堆内存中读取行数据,降低数据查询操作的效率。
基于此,本发明实施例公开了一种数据查询方法及装置,以解决现有技术中存在的数据查询操作效率低的问题。
本发明实施例公开的数据查询方法,参见图1,包括步骤:
S101、解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
需要说明的是,用户执行数据查询操作,输入数据查询命令,该数据查询命令需要携带有要执行操作的二元组的名称,以及二元组的排序元素的名称、结果元素的名称。例如:用户要执行的数据查询操作是:将二元组User1-User10按照排序元素age排序,然后按照排序后的顺序取出结果元素name。因此,解析用户输入的数据查询命令,获得的二元组包括:User1-User10,并且,每一个二元组的排序元素为age,结果元素为name。
S102、针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
其中,每一个二元组的排序元素和结果元素对应的数据均存储在除高速缓存以外的存储区域中,例如:内存,以下以内存为例进行说明。
解析数据查询命令之后,需在内存中开辟一个空闲的存储区域,读取每一个二元组的行数据,并提取该行数据中的排序元素对应的数据和结果元素对应的数据,并将每一个二元组的排序元素对应的数据和结果元素对应的数据存储到内存的空闲的存储区域中。
续接上述实例,读取User1-User10中的每一个二元组的行数据中,排序元素对应的数据和结果元素对应的数据,以二元组User1为例,该二元组的排序元素对应的数据可称之为User1的age,结果元素对应的数据可称之为User1的name。
S103、将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
其中,在内存的空闲存储区域中,将读取的每一个二元组的排序元素对应的数据以及结果元素对应的数据进行拼接,得到拼接后的数组。并且,若排序元素对应的数据和结果元素对应的数据本身即为字节类型,则直接可以拼接排序元素对应的数据和结果元素对应的数据,形成拼接后的字节数组。
还需要说明的是,步骤S102中,仅读取每一个二元组的排序元素对应的数据和结果元素对应的数据,可以避免其他元素对应的数据占据高速缓存的问题。进一步的,只有将二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接后,形成拼接后的字节数组,才可以保障拼接后的字节数组在进行存储时是连续存储的,进而能够在进行数据查询时,提取的每一行的数据都是需要用到的排序元素和结果元素。
可选地,本发明的另一实施例中,本步骤的具体实现方式可以为:
将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
由于数据查询命令中,要将二元组按照排序元素排序,然后按照排序后的顺序取出结果元素,将结果元素对应的数据拼接到排序元素对应的数据后面。这样,在读取拼接后的数组,进行数据比对时,靠前的字节优选参与对比,可以直接比较位于较前位置的排序元素,获得二元组的排序元素的顺序。
当然,也可以将结果元素对应的数据拼接到排序元素对应的数据的前面,此种情况下,在读取拼接后的数组,进行数据比对时,需要先将排序元素和结果元素分离,再比对排序元素。
S104、将每一个二元组的拼接后的数组均放入数组进行存储。
需要说明的是,将每一个二元组的拼接后的数组放入数组进行存储,也是将放入每一个二元组的拼接后的数组的数组存储在内存的空闲存储区域中。并且,将放入每一个二元组的拼接后的数组的数组存储在内存的空闲存储区域后,在对数组中的排序元素进行排序时,先从内存的空闲存储区域中读取存储的每一个二元组的拼接后的数组,并写入高速缓存,在高速缓存中比对所述每一个二元组的拼接后的数组中的排序元素的数据大小,得到排序元素的有序序列。
可选地,本发明的另一实施例中,本步骤的具体实现方式可以为:
将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
需要说明的是,将二元组的拼接后的数组,按照指针的排序顺序存储,这样,可以保证读取二元组的拼接后的数组时,直接以指针的排序顺序读取。
续接上述实例,表一中,User1-User5指代的是二元组的指针,表中诸如User1的age的元素为对象类型的元素,存储二元组的拼接后的数组,可以按照User1-User5的顺序进行存储。
本发明实施例公开的数据查询方法中,用户发送数据查询指令后,解析该指令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,再将每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后数组,并进行存储,可以保证依据数据查询指令进行操作时,只要读取二元组的排序元素和结果元素,避免了二元组的其他元素被读取而占用高速缓存的空间,进而解决了现有技术中存在因需要从内存中读取二元组的元素而导致的数据查询操作效率低的问题。
本发明另一实施例公开的数据查询方法,参见图2,包括步骤:
S201、解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
S202、针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
S203、分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
需要说明的是,二元组的排序元素对应的数据以及结果元素对应的数据的类型除了可以是字节类型,即byte类型外,还可以为:short、int、long、float以及double等。其中,若排序元素对应的数据以及结果元素对应的数据不是byte类型,则将排序元素对应的数据以及结果元素对应的数据转换成byte类型,存储时可以直接存储在栈中。
S204、针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组进行拼接,获得拼接后的数组;
续接上述实施例中的实例,以User1为例进行说明,将二元组User1的排序元素对应的数据User1的age,结果元素对应的数据User1的name,均进行转换,得到字节数组;再将转换后的字节数组进行拼接,得到拼接后的数组User1byte数组。
S205、将每一个二元组的拼接后的数组均放入数组进行存储。
需要说明的是,转换字节数组后再拼接,形成的拼接后的数组进行存储时,也是要直接存储在栈中,这样,在读取拼接后的数组,执行排序元素的对比时,可以通过一次寻址直接得到。
在上述实例中,将每一个二元组的拼接后的数组均放入数组进行存储,形成的列表如表二所示。
表二
User1byte数组 User2byte数组 User3byte数组 User4byte数组 User5byte数组
User6byte数组 User7byte数组 User8byte数组 User9byte数组 User10byte数组
其中,表二中,每一个二元组的拼接后的数组在存储时的顺序,与按照二元组的指针的排序顺序相同,均以由User1—User10。
本发明另一实施例公开的数据查询方法,参见图3,包括步骤:
S301、解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
S302、判断所述每一个二元组的结果元素是否满足预设条件;
其中,所述预设条件用于判断二元组的结果元素是否占用较大的存储空间。
可选地,本发明的另一实施例中,本步骤的具体实现方式可以为:
判断所述每一个二元组的结果元素的数量是否超过第一预设阈值;
或者,判断所述每一个二元组的结果元素对应的数据的数据量是否超过第二预设阈值。
其中,若一个二元组的结果元素的数量较多,即将二元组按照一个排序元素排序后,需要按照排序的顺序,读取几个结果元素,这样,二元组的结果元素占用的空间会较大,说明高速缓存会被分配较多的空间用于存储结果元素。另外,若结果元素的数量不多,没有超过预设阈值,但一个或者几个结果元素的对应的数据的数据量较大,也会导致结果元素进行存储时,需要占空较大的存储空间,因此也需要设定预设阈值,来判断每一个二元组的结果元素对应的数据的数据量是否会占用较大的存储空间。
需要说明的是,也可以结合结果元素的数量和数据量两个条件、来判断二元组的结果元素是否满足预设条件;具体的,判断所述每一个二元组的结果元素的数量是否超过第一预设阈值、且每一个二元组的结果元素对应的数据的数据量是否超过第二预设阈值。
还需要说明的是,可以根据实际的结果元素占用存储空间的一般情况来设定上述的两个预设阈值,来保证能够判断出数量超过第一预设阈值或者数据量超过第二预设阈值的结果元素进行存储时,会需要较多的高速缓存空间。
对判断出满足预设条件的二元组,执行步骤S303;对判断出不满足预设条件的二元组,执行步骤S304;
S303、读取所述二元组的结果元素的存储地址和二元组的排序元素对应的数据;
其中,所述二元组的结果元素存储地址作为二元组的结果元素对应的数据。
需要说明的是,如果判断出每一个二元组的结果元素满足预设条件,说明该二元组的结果元素会占用较大的存储空间,若直接读取该结果元素到高速缓存,会占用较大的空间,使高速缓存的空间不能被有效利用。因此,读取二元组的结果元素的存储地址,作为结果元素的对应的数据。
S304、读取所述二元组的结果元素对应的数据和二元组的排序元素对应的数据;
S305、分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
S306、针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组据进行拼接,获得拼接后的数组;
S307、将每一个二元组的拼接后的数组均放入数组进行存储。
本发明另一实施例还公开了一种数据查询装置,如图4所示,包括:
解析单元401,用于解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
读取单元402,用于针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
拼接单元403,用于将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
存储单元404,用于将每一个二元组的拼接后的数组均放入数组进行存储。
需要说明的是,本发明实施例公开的数据查询装置中,用户发送数据查询指令后,所述解析单元解析该指令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,再由所述拼接单元将每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后数组,并由存储单元进行存储,可以保证依据数据查询指令进行操作时,只要读取二元组的排序元素和结果元素,避免了二元组的其他元素被读取而占用高速缓存的空间,进而解决了现有技术中存在因需要从内存中读取二元组的元素而导致的数据查询操作效率低的问题。
还需要说明的是,本实施例中各个单元的具体工作过程,可以参见对应图1的方法实施例的内容,此处不再赘述。
可选地,本发明另一实施例中,参见图5,所述数据查询装置除包括:解析单元501、读取单元502、第一拼接单元503、存储单元504以外,还包括:
转换单元505,用于在针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据之后,分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
其中,第一拼接单元503,用于针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组据进行拼接,获得拼接后的数组。
需要说明的是,本实施例中各个单元的具体工作过程,可以参见对应图2的方法实施例的内容,此处不再赘述。
可选地,本发明另一实施例中,所述拼接单元,包括:第二拼接单元,用于将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
可选地,本发明另一实施例中,所述存储单元,包括:第一存储单元,用于将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
需要说明的是,上述两个实施例中各个单元的具体工作过程,可以参见对应图1的方法实施例中,优选实施例的内容,此处不再赘述。
可选地,本发明另一实施例中,所述解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,之后,还包括:
判断单元,用于判断所述每一个二元组的结果元素是否满足预设条件;
若所述判断单元判断出二元组的结果元素满足预设条件,所述读取单元包括:第一读取单元,用于读取所述二元组的结果元素的存储地址;
若所述判断单元判断出二元组的结果元素不满足预设条件,则所述判断单元执行读取所述二元组的结果元素对应的数据。
可选地,本发明另一实施例中,所述判断单元,包括:
第一判断单元,用于判断所述每一个二元组的结果元素的数量是否超过第一预设阈值;
第二判断单元,用于判断所述每一个二元组的结果元素对应的数据的数据量是否超过第二预设阈值。
需要说明的是,上述两个实施例中各个单元的具体工作过程,可以参见对应图3的方法实施例中的内容,此处不再赘述。
专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
将每一个二元组的拼接后的数组均放入数组进行存储。
2.根据权利要求1所述的数据查询方法,其特征在于,所述针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据之后,还包括:
分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
其中,所述将所述读取得到的每一个二元组的排序元素对应的数据、和结果元素对应的数据进行拼接,获得拼接后的数组,包括:
针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组进行拼接,获得拼接后的数组。
3.根据权利要求1所述的数据查询方法,其特征在于,所述将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组,包括:
将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
4.根据权利要求1所述的数据查询方法,其特征在于,所述将每一个二元组的拼接后的数组均放入数组进行存储,包括:
将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
5.根据权利要求1-4中任一项所述的数据查询方法,其特征在于,所述解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,之后,还包括:
判断所述每一个二元组的结果元素是否满足预设条件;
若判断出二元组的结果元素满足预设条件,则所述读取所述二元组的结果元素对应的数据,包括:读取所述二元组的结果元素的存储地址;
若判断出二元组的结果元素不满足预设条件,则执行读取所述二元组的结果元素对应的数据的步骤。
6.一种数据查询装置,其特征在于,包括:
解析单元,用于解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素;
读取单元,用于针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据;
拼接单元,用于将所述读取得到的每一个二元组的排序元素对应的数据、以及结果元素对应的数据进行拼接,获得拼接后的数组;
存储单元,用于将每一个二元组的拼接后的数组均放入数组进行存储。
7.根据权利要求6所述的数据查询装置,其特征在于,还包括:
转换单元,用于在针对所述每一个二元组,分别读取所述二元组的排序元素对应的数据和结果元素对应的数据之后,分别将所述每一个二元组的排序元素对应的数据和结果元素对应的数据,转换成字节数组;
其中,所述拼接单元,包括:
第一拼接单元,用于针对所述每一个二元组,分别将所述二元组的排序元素对应的数据转换成的字节数组、以及所述二元组的结果元素对应的数据转换成的字节数组据进行拼接,获得拼接后的数组。
8.根据权利要求6所述的数据查询装置,其特征在于,所述拼接单元,包括:第二拼接单元,用于将所述每一个二元组的结果元素对应的数据拼接到排序元素对应的数据的后面。
9.根据权利要求6所述的数据查询装置,其特征在于,所述存储单元,包括:第一存储单元,用于将每一个二元组的拼接后的数组,按照所述二元组的指针的排序顺序进行存储。
10.根据权利要求6-9中任一项所述的数据查询装置,其特征在于,所述解析数据查询命令,获得所述数据查询命令包含的多个二元组、以及每一个二元组的排序元素和结果元素,之后,还包括:
判断单元,用于判断所述每一个二元组的结果元素是否满足预设条件;
若所述判断单元判断出二元组的结果元素满足预设条件,所述读取单元包括:第一读取单元,用于读取所述二元组的结果元素的存储地址;
若所述判断单元判断出二元组的结果元素不满足预设条件,则所述判断单元执行读取所述二元组的结果元素对应的数据。
CN201710169770.2A 2017-03-21 2017-03-21 数据查询方法及装置 Active CN106951531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710169770.2A CN106951531B (zh) 2017-03-21 2017-03-21 数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710169770.2A CN106951531B (zh) 2017-03-21 2017-03-21 数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN106951531A true CN106951531A (zh) 2017-07-14
CN106951531B CN106951531B (zh) 2020-07-10

Family

ID=59472821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710169770.2A Active CN106951531B (zh) 2017-03-21 2017-03-21 数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN106951531B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457343A (zh) * 2018-05-04 2019-11-15 拉萨经济技术开发区凯航科技开发有限公司 一种个性化优化方法
CN112328630A (zh) * 2020-11-09 2021-02-05 广州虎牙科技有限公司 数据查询方法、装置、设备及存储介质
WO2021246770A1 (ko) * 2020-06-05 2021-12-09 주식회사 래디센 인공지능 기반 실시간 자동 엑스레이 영상 판독 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103632250A (zh) * 2013-12-06 2014-03-12 湖南御家汇化妆品有限公司 一种销售订单快速排序分组筛选方法
CN105574052A (zh) * 2014-11-06 2016-05-11 中兴通讯股份有限公司 数据库查询方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103632250A (zh) * 2013-12-06 2014-03-12 湖南御家汇化妆品有限公司 一种销售订单快速排序分组筛选方法
CN105574052A (zh) * 2014-11-06 2016-05-11 中兴通讯股份有限公司 数据库查询方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457343A (zh) * 2018-05-04 2019-11-15 拉萨经济技术开发区凯航科技开发有限公司 一种个性化优化方法
WO2021246770A1 (ko) * 2020-06-05 2021-12-09 주식회사 래디센 인공지능 기반 실시간 자동 엑스레이 영상 판독 방법 및 시스템
CN112328630A (zh) * 2020-11-09 2021-02-05 广州虎牙科技有限公司 数据查询方法、装置、设备及存储介质
CN112328630B (zh) * 2020-11-09 2023-10-13 广州虎牙科技有限公司 数据查询方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106951531B (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN101833542B (zh) 一种用户界面字体渲染方法及装置
US9367640B2 (en) Method and system for creating linked list, method and system for searching data
CN104298680B (zh) 数据统计方法及数据统计装置
CN103455475B (zh) 排版方法、设备及系统
CN106951531A (zh) 数据查询方法及装置
US6532457B1 (en) Look-ahead tree structure
CN104750727A (zh) 一种列式内存存储查询装置及列式内存存储查询方法
CN102521356B (zh) 基于确定有限状态自动机的正则表达式匹配设备和方法
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN106528896A (zh) 一种数据库优化方法和装置
CN101639851B (zh) 一种数据存储、查询的方法和装置
CN104166649B (zh) 一种用于搜索引擎的缓存方法和设备
CN111858612B (zh) 基于图数据库的数据加速访问方法、装置及存储介质
CN107783732A (zh) 一种数据读写方法、系统、设备及计算机存储介质
CN111522820A (zh) 数据存储结构、存储检索方法、系统、设备及存储介质
US20210049158A1 (en) Natural language interface to databases
CN106933934A (zh) 数据表的连接方法和装置
CN110955658A (zh) 一种基于Java智能合约的数据组织和存储方法
CN109002446A (zh) 一种智能排序方法、终端与计算机可读存储介质
CN109446127B (zh) 一种物理bram匹配方法
WO2021189694A1 (zh) 用户智能化分层方法、装置、电子设备及可读存储介质
CN107273654B (zh) 电子病历表单的存储优化系统
CN107153674A (zh) 一种直播房间信息展示方法及系统
CN112861495A (zh) 一种基于Excel模板文件生成ImpalaSQL语句的方法
CN107451161A (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