一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据查询方法、装置、电子设备及可读存储介质与流程

2022-04-24 22:28:32 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种数据查询方法、装置、电子设备及可读存储介质。


背景技术:

2.数据库是由一批数据构成的有效集合,可以存储数字、文字、图像、甚至是音频或视频等数据。在不同类型的数据库中,数据的存储形式可以不同,例如在关系型数据库中,数据是以行和列的形式存储于多张数据表中的。在数据库的使用或管理过程中,通常需要对数据库进行操作,例如数据查询、数据删除、数据插入、数据更新等。在对数据库进行数据查询操作时,往往会使用索引,但数据库的类型不同,所使用的索引也可能不同,针对同一数据库中不同数据特征的数据集,一种索引方法也可能会有不同的性能表现,即一种索引算法很难做到针对所有数据都有较大性能提升,例如常用的btree索引、hash索引等不适用于低基数列的数据集。
3.目前,针对低基数列的数据集主要索引有位图索引算法,但当低基数列的数据集包含的数据量较大时,使用该方法会使得空间开销较大。


技术实现要素:

4.为了解决当低基数列的数据集包含的数据量较大时,现行的数据查询方法会使得空间开销较大的技术问题,本公开提供了一种数据查询方法、装置、电子设备及可读存储介质。
5.第一方面,本公开实施例提供了一种数据查询方法,包括:
6.获取目标数据查询请求,所述目标数据查询请求包括目标数据查询条件;
7.根据所述目标数据查询条件,获取目标容器;其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息;所述一个或多个容器包括所述目标容器,所述目标容器包括满足所述目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息;
8.根据所述目标数据在所属数据表中的行号包括的第一信息以及所述目标容器的标识信息,获得所述目标数据在所属数据表中的行号;所述目标容器的标识信息是根据所述目标数据在所属数据表中的行号信息包括的第二信息生成的;
9.根据所述目标数据在所属数据表中的行号,从所述数据库中获取满足所述目标数据查询请求的所述目标数据。
10.作为本公开实施例一种可选的实施方式,所述根据所述目标数据查询条件,获取目标容器,包括:
11.根据所述目标数据查询请求以及预设映射关系,获取所述目标容器的存储位置信息;其中,所述预设映射关系包括一组或多组数据查询条件与相应容器的存储位置之间的映射关系;
12.根据所述目标容器的存储位置,获取所述目标容器。
13.作为本公开实施例一种可选的实施方式,所述根据所述数据查询请求,获取目标容器之前,所述方法还包括:
14.基于所述数据库中存储的各数据表以及一个或多个数据查询条件,获取所述数据库对应的一个或多个容器,其中,所述数据查询条件与所述容器之间一一对应。
15.作为本公开实施例一种可选的实施方式,所述基于所述数据库中存储的各数据表以及一个或多个数据查询条件,获取所述数据库对应的一个或多个容器,包括:
16.针对各所述数据查询条件,获得满足所述数据查询条件的数据分别在所属数据表中的行号信息;
17.将满足所述数据查询条件的数据在所属数据表中的行号信息转换为预设数据格式的行号信息;
18.根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器。
19.作为本公开实施例一种可选的实施方式,所述方法还包括:
20.将满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第二信息,作为所述数据查询条件对应的容器的标识信息。
21.作为本公开实施例一种可选的实施方式,所述根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器之前,所述方法还包括:
22.根据满足所述数据查询条件的数据的数量,确定所述数据查询条件对应的容器的类型。
23.作为本公开实施例一种可选的实施方式,所述根据满足所述数据查询条件的数据的数量,确定所述数据查询条件对应的容器的类型,包括:
24.若满足所述数据查询条件的数据的数量大于预设数量,则将所述数据查询条件对应的容器确定为位图容器;
25.若满足所述数据查询条件的数据的数量小于或等于所述预设数量,则将所述数据查询条件对应的容器确定为数组容器。
26.第二方面,本公开实施例提供一种数据查询装置,包括:
27.获取模块,用于获取目标数据查询请求,所述目标数据查询请求包括目标数据查询条件。
28.匹配模块,用于根据所述目标数据查询条件,获取目标容器;其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息;所述一个或多个容器包括所述目标容器,所述目标容器包括满足所述目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息。
29.分析模块,用于根据所述目标数据在所属数据表中的行号包括的第一信息以及所述目标容器的标识信息,获得所述目标数据在所属数据表中的行号;所述目标容器的标识信息是根据所述目标数据在所属数据表中的行号信息包括的第二信息生成的。
30.处理模块,用于根据所述目标数据在所属数据表中的行号,从所述数据库中获取满足所述目标数据查询请求的所述目标数据。
31.作为本公开实施例一种可选的实施方式,所述分析模块,具体用于根据所述目标数据查询请求以及预设映射关系,获取所述目标容器的存储位置信息;其中,所述预设映射关系包括一组或多组数据查询条件与相应容器的存储位置之间的映射关系;
32.根据所述目标容器的存储位置,获取所述目标容器。
33.作为本公开实施例一种可选的实施方式,所述装置还包括:
34.创建模块,用于基于所述数据库中存储的各数据表以及一个或多个数据查询条件,获取所述数据库对应的一个或多个容器,其中,所述数据查询条件与所述容器之间一一对应。
35.作为本公开实施例一种可选的实施方式,所述创建模块,具体用于针对各所述数据查询条件,获得满足所述数据查询条件的数据分别在所属数据表中的行号信息;
36.将满足所述数据查询条件的数据在所属数据表中的行号信息转换为预设数据格式的行号信息;
37.根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器。
38.作为本公开实施例一种可选的实施方式,所述创建模块还用于将满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第二信息,作为所述数据查询条件对应的容器的标识信息。
39.作为本公开实施例一种可选的实施方式,所述装置还包括确定模块,在根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器之前,用于根据满足所述数据查询条件的数据的数量,确定所述数据查询条件对应的容器的类型。
40.作为本公开实施例一种可选的实施方式,所述确定模块具体用于在满足所述数据查询条件的数据的数量大于预设数量的情况下,将所述数据查询条件对应的容器确定为位图容器;
41.若满足所述数据查询条件的数据的数量小于或等于所述预设数量,则将所述数据查询条件对应的容器确定为数组容器。
42.第三方面,本公开实施例提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用计算机程序时执行第一方面或第一方面任一种可选的实施方式所述的数据查询方法。
43.第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第一方面任一种可选的实施方式所述的数据查询方法。
44.本公开实施例提供的技术方案与现有技术相比具有如下优点:
45.在本公开实施例提供的数据查询方法中,通过根据目标数据查询请求包括的目标数据查询条件,获取目标容器,其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息,数据库对应的一个或多个容器包括目标容器,该目标容器包括满足目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息和目标容器的标识信息,获得目标数据在所属数据表中的行号。目标数据在所属数据表中的行号信息被拆分成了两部分(行号信息包括的第一信息和
第二信息),一方面,通过将一部分行号信息(第二信息)作为目标容器的标识进行存储,相当于只存储了一个行号信息的第二信息,减少了要存储的行号信息的基数,另一方面,容器中存储的是行号信息包括的第一信息,因此也减小了容器中存储的数据量,从而,降低了空间开销。此外,由于根据目标数据在所属数据表中的行号包括的第一信息以及目标容器的标识信息,可以获得目标数据在所属数据表中的行号,使得在查询目标数据时,不需要在数据库的数据表中进行逐行比对,提高了获取目标数据时的查询性能。
附图说明
46.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
47.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
48.图1为本公开一个实施例提供的数据查询方法的步骤流程图;
49.图2为本公开另一个实施例提供的数据查询方法的步骤流程图;
50.图3为本公开再一个实施例提供的数据查询方法的步骤流程图;
51.图4为本公开又一个实施例提供的数据查询方法的步骤流程图;
52.图5为本公开一个实施例提供的数据查询装置的结构框图;
53.图6为本公开另一个实施例提供的数据查询装置的结构框图;
54.图7为本公开一个实施例提供的电子设备的结构示意图。
具体实施方式
55.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
56.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
57.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
58.首先,对本公开方案的应用场景进行介绍:面对数据库中海量低基数列的数据,如果用传统的位图索引算法对目标数据进行查询,查询过程会涉及位图的压缩和解压操作,在海量数据中查询时性能不佳。且数据量较非常大时,空间开销会非常大。需要说明的是,海量指数据库中数据表的行数非常大,低基数列指要创建索引的一个或多个列的取值的可
选范围较小,例如数据库中包括的学生的成绩表,成绩列为低基数列。因此,亟需一种针对海量低基数列数据的查询方法,解决空间开销大的问题。
59.本公开实施例提供的数据处理方法的执行主体可以为数据处理工具,该数据处理工具可以安装于本公开提供的电子设备上,通过本公开实施例中的电子设备执行,该电子设备可以通过任意的软件和/或硬件的方式实现。示例性地,该电子设备可以但不限于为手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-m obile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、智能手表、智能手环等终端设备,本公开对于终端设备的具体类型不做限定。
60.基于前述描述,结合本公开实施例的附图和应用场景,对本公开提供的数据查询方法进行详细阐述。
61.图1为本公开一个实施例提供的数据查询方法,可包括以下步骤:
62.s110、获取目标数据查询请求,该目标数据查询请求包括目标数据查询条件。
63.该目标数据查询请求为用户发出的用于查询目标数据的请求,其中包括目标数据查询条件,目标数据查询条件可包括数据表中目标数据列的取值,目标数据列为要创建索引或已经创建了索引的数据列。
64.示例性的,可通过获取用户的输入操作或输入内容,得到目标数据查询请求,用户的输入操作可以为用户对本公开实施例提供的电子设备的触控操作、点击操作等,本公开实施例不进行具体限定。
65.s120、根据目标数据查询条件,获取目标容器。
66.其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息;所述一个或多个容器包括所述目标容器,所述目标容器包括满足所述目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息。
67.数据库对应的一个或多个容器即为数据库对应的一个或多个数据集合,一个数据查询条件可对应一个容器(数据集合),也可对应多个容器。目标数据在所属数据表中的行号信息包括的第一信息可包括目标数据在所属数据表中的行号的预设位数的数据,例如,将目标数据在所属数据表中的行号用三十二位的数据表示时,第一信息可包括后十六位数据。
68.目标容器(目标数据集合)可以为多个也可以为一个,即目标数据查询条件可对应一个容器,也可对应多个容器,以下对两种情况进行举例说明:
69.一种情况下,目标数据查询条件包括了数据表的信息,如数据表的表名或数据表的id,且该数据表中目标数据的所有行号信息包括的第二信息相同时,该查询条件对应一个容器,即针对一张数据表的数据查询条件与容器一一对应,一张数据表中满足目标数据查询条件的行号信息存储于同一个容器中,目标数据查询条件可对应一个容器,即目标容器包括一个容器。
70.另一种情况下,目标数据查询条件没有包括数据表的信息,也就是要获取的是数据库中满足目标数据查询条件的所有行号信息,即满足目标数据查询条件的目标数存储于多张数据表中,且该多张数据表的行号没有重复时,该目标数据查询条件可以对应多个容器,即目标容器包括多个容器。
71.可选的,根据目标数据查询条件获取目标容器可通过以下方式实现:
72.根据目标数据查询请求以及预设映射关系,获取目标容器的存储位置信息;其中,所述预设映射关系包括一组或多组数据查询条件与相应容器的存储位置之间的映射关系;根据目标容器的存储位置,获取所述目标容器。
73.当数据库中包括一个容器时,预设映射关系包括一组数据查询条件与目标容器的存储位置之间的映射关系;当数据库中包括多个容器时,预设映射关系包括多组数据查询条件与对应的容器的存储位置之间的映射关系。
74.可选的,在根据目标数据查询请求以及预设映射关系,获取目标容器的存储位置信息之前,包括创建预设映射关系,预设映射关系可包括一组或多组数据查询条件与相应容器的存储位置之间的映射关系,也可包括目标数据列的取值与相应容器的存储位置之间的映射关系,示例性,目标数据列(要创建索引的数据列)为学生的语文成绩对应的数据列时,目标数据列的取值为学生的语文成绩对应的分数,为每个分数取值分配对应的存储空间,并标识该存储空间的位置,用于存储对应的分数取值的容器,该容器中包括对应的分数取值在学生的成绩表中的行号包括的第一信息。由于一张成绩表中每个分数取值对应的行号信息被存储在了一个容器中,相当于减小了容器中要存储的行号信息的基数,减小了空间开销。
75.s130、根据目标数据在所属数据表中的行号包括的第一信息以及目标容器的标识信息,获得目标数据在所属数据表中的行号。
76.其中,目标容器的标识信息是根据目标数据在所属数据表中的行号信息包括的第二信息生成的。
77.目标容器的标识信息相当于目标数据在所属数据表中的行号信息的索引,用于查询目标数据在所属数据表中的行号。目标容器的标识信息可以为目标数据在所属数据表中的行号信息包括的第二信息本身,也可以为根据目标数据在所属数据表中的行号信息包括的第二信息生成的用于表示该第二信息的标识信息,本公开实施例不对根据目标数据在所属数据表中的行号信息包括的第二信息生成的标识信息不做具体限定。
78.示例性的,当目标数据在所属数据表中的行号信息包括的行号以32位的二级制表示时,目标数据在所属数据表中的行号信息包括的第一信息可以为该行号前16位数据(高位数据),也可以为该行号后16位数据(低位数据),目标数据在所属数据表中的行号信息包括的第二信息可以为该行号前16位数据(高位数据),也可以为该行号后16位数据(低位数据);当目标数据在所属数据表中的行号信息包括的第二信息为目标容器的标识信息时,该目标数据在所属数据表中的行号信息包括的第二信息为该行号的前16位数据(高位数据),该目标数据在所属数据表中的行号信息包括的第一信息为该行号的后16位数据(低位数据)。也就是说,本实施例中存储于一个目标容器中的行号的高位数据是相同的。
79.基于上述描述,一种情况下,当目标容器的标识信息为目标数据在所属数据表中的行号信息包括的第二信息,该第二信息为该行号的高位数据,该目标数据在所属数据表中的行号信息包括的第一信息为该行号的低位数据时,根据目标数据在所属数据表中的行号包括的第一信息以及目标容器的标识信息,获得目标数据在所属数据表中的行号的一种可实现方式包括:将目标数据在所属数据表中的行号信息包括的第二信息(高位数据)与第一信息(低位数据)进行组合,得到目标数据在所属数据表中的行号。
80.另一种情况下,当目标容器的标识信息为根据目标数据在所属数据表中的行号信息包括的第二信息生成的标识信息时,根据目标数据在所属数据表中的行号包括的第一信息以及目标容器的标识信息,获得目标数据在所属数据表中的行号的一种可实现方式包括:对目标容器的标识信息进行解析,获取目标数据在所属数据表中的行号的高位数据,将得到的高位数据与作为第一信息的低位数据组合,得到目标数据在所属数据表中的行号。
81.本实施中,目标数据在所属数据表中的行号被拆分成了高位和低位,将高位同的行号对应低位数据存储于一个目标容器中,并将根据高位数据生成的信息作为该容器的标识信息,不仅创建了包含标识信息的索引,也降低了目标数据在所属数据表中的行号的数据量,减少了空间开销。
82.此外,根据标识信息可同时确定目标数据在所属数据表中的多个位置,提高数据的查询效率。
83.s140、根据目标数据在所属数据表中的行号,从数据库中获取满足目标数据查询请求的所述目标数据。
84.确定了目标数据在所属数据表中的行号,也即确定了目标数据在所属数据表中的位置,进而获取到满足目标数据查询请求的目标数据,以及该目标数据所在行的其它数据。
85.示例性的,以学生的成绩表为例,当获取到目标分数在所属数据表中的行号时,可以根据行号获取到该行信息包括的学生姓名等多个列的信息。
86.在本公开实施例提供的数据查询方法中,通过根据目标数据查询请求包括的目标数据查询条件,获取目标容器,其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息,数据库对应的一个或多个容器包括目标容器,该目标容器包括满足目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息和目标容器的标识信息,获得目标数据在所属数据表中的行号。目标数据在所属数据表中的行号信息被拆分成了两部分(行号信息包括的第一信息和第二信息),一方面,通过将一部分行号信息(第二信息)作为目标容器的标识进行存储,相当于只存储了一个行号信息的第二信息,减少了要存储的行号信息的基数,另一方面,容器中存储的是行号信息包括的第一信息,也减小了容器中存储的数据量。从而,降低了空间开销。此外,由于根据目标数据在所属数据表中的行号包括的第一信息以及目标容器的标识信息,可以获得目标数据在所属数据表中的行号,使得在查询目标数据时,不需要在数据库的数据表中进行逐行比对,提高了获取目标数据时的查询性能。
87.图2为本公开另一个实施例提供的数据查询方法的步骤流程图,在图1所示实施例的基础上,进一步地,在步骤s120(根据目标数据查询条件,获取目标容器)之前,还包括:
88.s210、基于数据库中存储的各数据表以及一个或多个数据查询条件,获取该数据库对应的一个或多个容器。
89.其中,数据查询条件与所述容器之间一一对应。
90.具体的,基于数据库中存储的各数据表以及一个或多个数据查询条件,获取该数据库对应的一个或多个容器的过程为创建该数据库对应的容器的过程。
91.一种可实现的方式包括:对数据库中存储的各数据表进行分析,获取各数据表对应的一个或多个目标数据列,目标数据列中各行的取值范围较小,确定目标数据列中各行的取值和各取值对应的键值,各取值对应的键值用于指示该取值对应的容器中的存储位
置;对目标数据列中各行对应的取值进行统计,获取目标数据列中所有行的取值数量,一个数据查询条件可对应一种取值,针对各取值分别创建对应的容器,即目标数据列中所有行的取值数量为该目标数据列所属数据表对应的容器的数量。举例对目标数据列中所有行的取值数量进行说明,若目标数据列含有n行数据,该n行数据的取值包含了1-100中的所有整数的情况下,目标数据列中所有行的取值数量为100,可以对应100个容器,一个查询条件对应一个取值,也对应一个容器。
92.需要说明的是,当数据中各数据表的类型不同时,一个容器中包含的行号信息是同一张数据表包括的行号信息;当多张数据表是同类型的数据表,数据表的行号可以不从零开始,且多张数据表包含的行号没有重复时,一个容器中包含的行号信息是可以是多张数据表包括的行号信息。
93.图3为本公开再一个实施例提供的步骤流程图,在图2所示实施例的基础上,步骤s210的一种可现实方式可包括图3中的步骤s310-s330,参照图3所示。需要说明的是,图3中的步骤s310-s330是以建立一张数据表对应的容器为例对步骤s210进行说明,但该实现方式不仅可实现创建一张数据表对应的容器,也可以实现创建数据库中多张数据表分别对的容器,以下具体说明不对本公开实施例构成任何限定。
94.s310、针对各数据查询条件,获得满足数据查询条件的数据分别在所属数据表中的行号信息。
95.示例性的,满足数据查询条件的数据在所属数据表中的行号信息可以为该行的行号,例如,若满足数据查询条件的数据在所属数据表中处于第10行、第15行、第23行,则满足数据查询条件的数据在所属数据表中的行号信息为10、15、23。
96.s320、将满足数据查询条件的数据在所属数据表中的行号信息转换为预设数据格式的行号信息。
97.示例性的,将满足数据查询条件的数据在所属数据表中的行号进行转换,得到的预设数据格式的行号信息可以为以32位的二进制数表示的行号,也可以为以64位的二进制数表示的行号,本实施例不进行具体限定。
98.s330、根据满足数据查询条件的数据分别对应的预设数据格式的行号信息包括的第一信息,获取数据查询条件对应的容器。
99.具体的,根据满足数据查询条件的数据分别对应的预设数据格式的行号信息包括的第一信息,创建数据查询条件对应的容器包括:将预设数据格式的行号信息包括的第一信息存储于对应的容器中。基于对步骤s320的举例说明,当预设数据格式的行号信息为以32位的二进制数表示的行号时,预设数据格式的行号信息包括的第一信息可以为以32位的二进制数表示的行号的低位数据(后16位数据),当预设数据格式的行号信息为以64位的二进制数表示的行号时,预设数据格式的行号信息包括的第一信息可以为以64位的二进制数表示的行号的低位数据(后32位数据)。
100.将目标数据在所述数据表中的行号的低位数据存储于满足目标数据查询条件对应的容器中,减少了空间的消耗。
101.可选的,所述方法还包括如下步骤s340:
102.s340、将满足数据查询条件的数据分别对应的预设数据格式的行号信息包括的第二信息,作为数据查询条件对应的容器的标识信息。
103.基于对s330的举例说明,当预设数据格式的行号信息为以32位的二进制数表示的行号时,预设数据格式的行号信息包括的第二信息可以为以32位的二进制数表示的行号的高位数据(前16位数据),当预设数据格式的行号信息为以64位的二进制数表示的行号时,预设数据格式的行号信息包括的第二信息可以为以64位的二进制数表示的行号的高位数据(后32位数据)。将预设数据格式的行号信息包括的第二信息作为数据查询条件对应的容器的标识信息包括:将预设数据格式的行号的高位数据作为数据查询条件对应的容器的标识信息。
104.即,本实施例中满足数据查询条件的数据对应的预设数据格式的行号被拆分成了高位数据和低位数据,将高位数据作为容器的标识信息,将对应的低位数据存储于以高位数据作为标识信息的容器中,从而创建了满足数据查询条件的数据对应行号的索引,若应用于目标数据的获取,可提高查询效率。
105.需要说明的是,在执行上述步骤s330和步骤s340时,可先执行步骤s330,再执行步骤s340;也可先执行步骤s340,再执行步骤s330;或者,步骤s330和步骤s340可同时执行,本实施例不做具体限定。
106.图4为本公开又一个实施例提供的数据查询方法的步骤流程图,在图3所示实施例的基础上,进一步地,在步骤s330(根据满足数据查询条件的数据分别对应的预设数据格式的行号信息包括的第一信息,获取数据查询条件对应的容器)之前,还包括以下步骤:
107.s410、根据满足数据查询条件的数据的数量,确定所述数据查询条件对应的容器的类型。
108.其中,满足数据查询条件的数据的数量即为存储满足数据查询条件的数据所在数据行行的数量,举例进行说明,当满足数据查询条件的数据的数量为m时,对应的数据表中有m行存储了满足数据查询条件的数据,即对应的容器中要存储的数据的基数为m。所述数据查询条件对应的容器的类型为满足数据查询条件的数据对应的行号包括的第一信息的存储类型。
109.一种可实现的方式包括:确定多种预设存储类型和满足数据查询条件的数据的数量,计算将满足数据查询条件的数据分别以各预设存储类型进行存储时所占用的空间,将占用空间最小的预设存储类型确定为存储满足数据查询条件的数据在所属数据表中的行号包括的第一信息的存储类型。
110.可选的,步骤s410可通过以下步骤来实现:
111.判断所述数据查询条件的数据的数量是否大于预设数量,若是,则将所述数据查询条件对应的容器确定为位图容器;若否,则将所述数据查询条件对应的容器确定为数组容器。
112.本实施例中的预设数量可以为4096,示例性的,当满足所述数据查询条件的数据的数量大于4096,即要存储的行号信息对应的行号的数量大于4096时,将满足数据查询条件的数据在所属数据表中的行号包括的第一信息以位图的形式存储至对应的容器中,位图为0和1组成的数据串,0和1分别占用一个比特位。通过举例对以位图进行存储的方式进行说明,若行号包括的第一信息为行号的低位数据,假设为123,则对应的位图为111,若低位数据为125,则对应的位图为11001。在行号的低位数据占用32个比特位的情况下,若用位图进行存储,则会占用更少的比特位,节省了存储空间。
113.可选的,在位图容器中,若有连续的多个低位数据存在,则可采用步长压缩法对连续的多个低位数据进行压缩存储,例如当连续的多个低位数据包括11、12、13、14、15时,可以压缩成11(5),对这5个低位数据进行存储,进一步节省存储空间。
114.一种可实现的方式包括:将满足数据查询条件的数据在所属数据表中的行号的低位数据以数值的形式存储于对应的容器中。即在本实施例中,数组容器所能存储的目标数据的行号的数量最多为4096。
115.即,当数据表中有大于4096行保存了满足数据查询条件的数据时,采用位图容器保存行号包括的第一信息,当数据表中有小于等于4096行保存了满足数据查询条件的数据时,采用数组容器保存行号包括的第一信息。
116.在本实施例中,当满足数据查询条件的数据的数量大于4096时,采用位图容器存储行号的低位数据更节省空间,当满足数据查询条件的数据的数量小于或等于4096时,采用数组容器存储行号的低位数据更节省空间。
117.进一步的,采用数组容器存储满足数据查询条件的数据在所属数据表中的行号的低位数据的情况下,若对数据表进行了更新,使得满足该数据查询条件的数据的数量增多至超过4096时,将数组容器转换成位图容器,即将以数值形式存储的低位数据转换为以位图形式进行存储,以节省存储空间。
118.基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了执行上述实施例提供的数据查询方法的装置,该装置可以执行前述方法实施例对应所述的数据查询方法,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的数据查询装置能够对应实现前述方法实施例中的全部内容。
119.图5为本公开实施例提供的数据查询装置的结构示意图,如图5所示,本实施例提供的数据查询装置500包括:
120.获取模块510,用于获取目标数据查询请求,该目标数据查询请求包括目标数据查询条件。
121.匹配模块520,用于根据所述目标数据查询条件,获取目标容器;其中,数据库对应一个或多个容器,各容器分别包括满足相应数据查询条件的数据在所属数据表中的行号信息包括的第一信息;所述一个或多个容器包括所述目标容器,所述目标容器包括满足所述目标数据查询条件的目标数据在所属数据表中的行号信息包括的第一信息。
122.分析模块530,用于根据所述目标数据在所属数据表中的行号包括的第一信息以及所述目标容器的标识信息,获得所述目标数据在所属数据表中的行号;所述目标容器的标识信息是根据所述目标数据在所属数据表中的行号信息包括的第二信息生成的。
123.处理模块540,用于根据所述目标数据在所属数据表中的行号,从所述数据库中获取满足所述目标数据查询请求的所述目标数据。
124.作为本公开实施例一种可选的实施方式,分析模块530,具体用于根据所述目标数据查询请求以及预设映射关系,获取所述目标容器的存储位置信息;其中,所述预设映射关系包括一组或多组数据查询条件与相应容器的存储位置之间的映射关系;根据所述目标容器的存储位置,获取所述目标容器。
125.图6为本公开另一个实施例提供的数据查询装置的结构示意图,如图6所示,本实施例提供的数据查询装置500还包括:
126.创建模块610,用于基于所述数据库中存储的各数据表以及一个或多个数据查询条件,获取所述数据库对应的一个或多个容器,其中,所述数据查询条件与所述容器之间一一对应。
127.作为本公开实施例一种可选的实施方式,创建模块610,具体用于针对各所述数据查询条件,获得满足所述数据查询条件的数据分别在所属数据表中的行号信息;将满足所述数据查询条件的数据在所属数据表中的行号信息转换为预设数据格式的行号信息;根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器。
128.作为本公开实施例一种可选的实施方式,创建模块610还用于将满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第二信息,作为所述数据查询条件对应的容器的标识信息。
129.作为本公开实施例一种可选的实施方式,所述装置还包括确定模块620,在根据满足所述数据查询条件的数据分别对应的所述预设数据格式的行号信息包括的第一信息,获取所述数据查询条件对应的容器之前,用于根据满足所述数据查询条件的数据的数量,确定所述数据查询条件对应的容器的类型。
130.作为本公开实施例一种可选的实施方式,确定模块620具体用于在满足所述数据查询条件的数据的数量大于预设数量的情况下,将所述数据查询条件对应的容器确定为位图容器;若满足所述数据查询条件的数据的数量小于或等于所述预设数量,则将所述数据查询条件对应的容器确定为数组容器。
131.本实施例提供的数据查询装置可以执行上述方法实施例提供的数据查询方法,其实现原理与技术效果类似,此处不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
132.在一个实施例中,提供了一种电子设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例所述的任意一项数据查询方法的步骤。
133.示例性的,图7为本公开实施例提供的电子设备的结构示意图。如图7所示,本实施例提供的电子设备包括:存储器71和处理器72,存储器71用于存储计算机程序;处理器72用于调用计算机程序时执行上述方法实施例提供的数据查询方法中的步骤,其实现原理和技术效果类似,此处不再赘述。本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
134.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所述的任意一项数据查询方法的步骤。
135.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开
所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,比如静态随机存取存储器(static random access memory,sram)和动态随机存取存储器(dynamic random access memory,dram)等。
136.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献