一种数据库检索方法、装置、存储介质及电子设备与流程

文档序号:29252314发布日期:2022-03-16 10:06阅读:159来源:国知局
一种数据库检索方法、装置、存储介质及电子设备与流程

1.本发明涉及数据库技术领域,具体涉及一种数据库检索方法、装置、存储介质及电子设备。


背景技术:

2.数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。随着大数据时代和人工智能时代的到来,数据库应用越来越多,处理的数据量逐渐增加,使用sql对数据库检索时,编制sql语句的难度会随着需求复杂度而提升,同时检索效率也会随之下降,计算机对复杂的sql解析和执行所消耗的资源也会有相应的增加。


技术实现要素:

3.有鉴于此,本发明实施例提供了涉及一种数据库检索方法、装置、存储介质及电子设备,以解决现有技术中数据库检索效率低的技术问题。
4.本发明提出的技术方案如下:
5.本发明实施例第一方面提供一种数据库检索方法,该数据库检索方法包括:将数据库待检索条件值进行枚举并存储在有序集合中;提取所述有序集合中所述待检索条件值对应的位置;根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将所述目标位置整数值写入预设数据库的标志字段;在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与所述有序集合中的所述检索条件值进行比对,根据比对结果确定所述当前数据库检索条件中的多个检索条件值在所述有序集合中的多个目标位置,并对所述多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算;根据运算结果在所述数据库中进行检索。
6.可选地,根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将所述唯一目标位置整数值写入预设数据库的标志字段,包括:根据位置顺序以及预设数据类型将所述待检索条件值按位赋值得到对应的比特位数值;将所述比特位数值进行转换处理得到所述待检索条件值对应的唯一目标位置整数值。
7.可选地,根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将所述唯一目标位置整数值写入预设数据库的标志字段之前,所述方法还包括:根据枚举得到的所述有序集合中包含的待检索条件值的数量确定所述预设数据类型。
8.可选地,对所述多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算,包括:将所述多个目标位置的信息按位运算得到不同的多个目标位置整数值;对所述多个目标位置整数值取或运算得到所述唯一条件数值。
9.可选地,将接收到的当前数据库检索条件中的多个检索条件值与所述有序集合中
的所述检索条件值进行比对,包括:对所述唯一条件数值和所述标志字段取与运算;当运算结果不为零时,则所述标志字段对应的所述检索条件值对应当前数据库检索条件中的检索条件值。
10.本发明实施例第二方面提供一种数据库检索装置,该数据库检索装置包括:存储模块,用于将数据库待检索条件值进行枚举并存储在有序集合中;提取模块,用于提取所述有序集合中所述待检索条件值对应的位置;确定模块,用于根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将所述唯一目标位置整数值写入预设数据库的标志字段;运算处理模块,用于在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与所述有序集合中的所述检索条件值进行比对,根据比对结果确定所述当前数据库检索条件中的多个检索条件值在所述有序集合中的多个目标位置,并对所述多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算;检索模块,用于根据运算结果在所述数据库中进行检索。
11.可选地,所述确定模块包括:第一确定模块,用于根据位置顺序以及预设数据类型将所述待检索条件值按位赋值得到对应的比特位数值;第二确定模块,用于将所述比特位数值进行转换处理得到所述待检索条件值对应的唯一目标位置整数值。
12.可选地,所述装置还包括:第三确定模块,用于根据枚举得到的所述有序集合中包含的待检索条件值的数量确定所述预设数据类型。
13.本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的数据库检索方法。
14.本发明实施例第四方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的数据库检索方法。
15.本发明提供的技术方案,具有如下效果:
16.本发明实施例提供的数据库检索方法,将数据库待检索条件值进行枚举并存储在有序集合中;提取所述有序集合中所述待检索条件值对应的位置;根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将所述唯一目标位置整数值写入预设数据库的标志字段;在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与所述有序集合中的所述检索条件值进行比对,根据比对结果确定所述当前数据库检索条件中的多个检索条件值在所述有序集合中的多个目标位置,并对所述多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算;根据运算结果在所述数据库中进行检索。该方法根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值,将非数值转换为数值;利用有序集合中的目标位置对应的唯一条件数值进行运算,将多条件转换为单条件的数值运算。因此,通过实施本发明,简化了运算复杂度,提高了检索效率。
附图说明
17.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是根据本发明实施例的数据库检索方法的流程图;
19.图2是根据本发明实施例的数据库检索方法的原理示意图;
20.图3是根据本发明实施例的数据库检索装置的结构框图;
21.图4是根据本发明实施例提供的计算机可读存储介质的结构示意图;
22.图5是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.本发明实施例提供一种数据库检索方法,如图1所示,该方法包括如下步骤:
25.步骤s101:将数据库待检索条件值进行枚举并存储在有序集合中。具体地,在对数据库中数据进行检索时,首先将数据库检索时对应的待检索条件值进行枚举来规范待检索条件值,然后将枚举后的待检索条件值存储到有序集合中。其中,有序集合可以提供按索引访问的方式,包括根据key或index访问,在属性(检索条件值)的增加、删除及修改中拥有较好的性能表现;一个集的枚举是列出某些有穷序列集的所有成员的程序,是一个被命名的整型常数的集合,例如表示星期的sunday、monday、tuesday、wednesday、thursday、friday、saturday就是一个枚举。
26.在一实施例中,对sqlite关系型数据库中数据进行检索,将对应的检索条件值进行枚举并存储到独立的字典表中,其中独立的字典表即为有序集合。
27.步骤s102:提取有序集合中待检索条件值对应的位置。具体地,将数据库待检索条件值进行枚举并存储在有序集合中之后,有序集合中待检索条件值都有对应的固定的位置,将该位置提取出来。
28.步骤s103:根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段。具体地,根据计算机支持的数据类型对有序集合中的检索条件值增加标记字段,其中,数据类型可以为short数据类型、int数据类型、long数据类型等。每种数据类型都包含不同的字节(byte),每一个字节又包含8个比特位(bit)。因此将有序集合中待检索条件值对应的位置提取出来之后,根据预先设置的数据类型可以按照比特位确定待检索条件值对应的唯一目标位置整数值,并根据位置顺序可以确定不同位置的待检索条件值对应的唯一目标位置整数值。然后将该唯一目标位置整数值写入到预设数据库的标志字段中。
29.步骤s104:在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对,根据比对结果确定当前数
据库检索条件中的多个检索条件值在有序集合中的多个目标位置,并对多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算。具体地,在预设数据库中写入待检索条件值对应的唯一条件数值之后,可以利用该预设数据库中存储的待检索条件值对应的唯一条件数值进行检索。
30.具体地,当对当前数据库包含的数据进行检索时,首先将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对,比对之后可以确定当前数据库检索条件中的多个检索条件值在有序集合中对应的多个位置,对多个目标位置的信息进行处理可以得到当前多个检索条件值对应的唯一条件数值,然后对得到的唯一条件数值进行运算,将非数值、多条件转换为数值、单条件的运算,简化了计算的复杂度,极大提高了检索效率。
31.步骤s105:根据运算结果在数据库中进行检索。具体地,在对多个目标位置的信息进行处理得到的所述多个检索条件值对应的唯一条件数值进行运算之后,可以将多个检索条件值转换为单个数值,然后在sql中输入得到的最终的检索条件表达值并进行检索。
32.在一实施例中,经过运算得到最终的检索条件表达值为0x8880000000000000,此时在sql中输入并采用以下任意一种方法进行检索:
33.(1)select*from user_info where mcode&0x8880000000000000!=0;
34.(2)select*from user_info where mcode&0x8880000000000000<>0;
35.本发明实施例提供的数据库检索方法,将数据库待检索条件值进行枚举并存储在有序集合中;提取有序集合中待检索条件值对应的位置;根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段;在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对,根据比对结果确定当前数据库检索条件中的多个检索条件值在有序集合中的多个目标位置,并对多个目标位置的信息进行处理得到的多个检索条件值对应的唯一条件数值进行运算;根据运算结果在数据库中进行检索。该方法根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值,将非数值转换为数值;利用有序集合中的目标位置对应的唯一条件数值进行运算,将多条件转换为单条件的数值运算。因此,通过实施本发明,简化了运算复杂度,提高了检索效率。
36.作为本发明实施例一种可选的实施方式,根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段时,首先根据位置顺序以及预设数据类型将待检索条件值按位赋值得到对应的比特位数值。
37.在一实施例中,设置数据类型为long数据类型,具体地,long数据类型包含8个字节(byte),所以long值就包含8x8=64个有序比特位,则根据有序比特位对待检索条件值赋值得到对应的比特位数值。如下表1所示,待检索条件值对应的比特位数值可以为10000
……
0(共63位数值0)、01000
……
0(共63位数值0)、
……
、0000
……
01(共63位数值0)等等。
38.表1
[0039][0040]
然后将对应的比特位数值进行数值转换处理可以得到待检索条件值对应的唯一目标位置整数值。具体地,将对应的比特位数值做进制转换处理。
[0041]
在一实施例中,如下表2所示,将检索条件值对应的比特位数值10000
……
0(共63位数值0)、01000
……
0(共63位数值0)、0000
……
01(共63位数值0)进行数值转换处理得到对应的唯一目标位置整数值分别为:0x8000000000000000、ox4000000000000000、0x0000000000000001。其中,标志位ra、rb等用于分别记录预设数据库中的标志字段。
[0042]
表2
[0043]
比特位123456789

64十六进制数值ra100000000

00x8000000000000000rb010000000

00x40000000000000000rc001000000

00x2000000000000000rd000100000

00x1000000000000000re000010000

00x08000000000000000rf000001000

00x04000000000000000rg000000100

00x02000000000000000rh000000010

00x01000000000000000r1000000001

00x0080000000000000

000000000
…0…
rxx000000000 10x0000000000000001
[0044]
最后,确定不同位置的待检索条件值对应的唯一目标位置整数值之后,将该对应的唯一条件数值写入预设数据库的标志字段中。
[0045]
作为本发明实施例一种可选的实施方式,根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段之前,可以根据枚举得到的有序集合中包含的待检索条件值的数量确定预设数据类型。具体地,当有序集合中的检索条件值少于32个时,可以采用integer(4字节,32比特位)数据类型确定待检索条件值对应的唯一目标位置整数值;当有序集合中的检索条件值大于32个且少于64个时,可以采用long(8字节,64比特位)数据类型确定待检索
条件值对应的唯一目标位置整数值;当有序集合中的检索条件值大于64个时,可以分配新增标志字段来运算;当有序集合中还有更多的检索条件值时,可以在当前标记字段基础上迭代实现。
[0046]
作为本发明实施例一种可选的实施方式,对多个目标位置的信息进行处理得到的多个检索条件值对应的唯一条件数值进行运算,包括:将多个目标位置的信息按位运算得到不同的多个目标位置整数值;对多个目标位置整数值取或运算得到唯一条件数值。具体的,在确定当前数据库检索条件中的多个检索条件值在有序集合中的多个目标位置之后,可以根据目标位置得到一个对应的比特位数值即对应目标位置的信息,将该信息进行按位计算可以得到对应的目标位置整数值,然后将该得到的目标位置整数值取或运算得到唯一条件数值。
[0047]
在一实施例中,当前数据库中3个检索条件值在有序集合中的3个目标位置信息分别为10000
……
0(共63位数值0)、00001
……
0(共63位数值0)、000000001
……
0(共63位数值0),将该3个位置信息按位运算得到该目标位置的信息对应的目标位置整数值分别为0x8000000000000000、0x0800000000000000、0x0080000000000000。然后将得到的3个目标位置整数值取或运算得到唯一条件数值:
[0048]
0x8000000000000000|0x0800000000000000|0x0080000000000000
[0049]
=0x8880000000000000
[0050]
则0x8880000000000000即为最终检索使用的唯一条件数值。
[0051]
作为本发明实施例一种可选的实施方式,将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对时,首先需要将唯一条件数值和标志字段取与运算,当运算结果不为零时,则该标志字段对应的检索条件值对应当前数据库检索条件中的检索条件值。
[0052]
具体地,标志字段中存储的是有序集合中的检索条件对应的目标位置,且根据数据类型设置,因此将唯一条件数值和标志字段取与运算,如果运算结果不为零,则该标志字段对应的检索条件值对应当前数据库检索条件中的检索条件值。
[0053]
在一实施例中,唯一条件数值为0x8880000000000000,将该数值与标志字段取与运算,当运算结果不为零时,可以得到检索条件值对应的目标位置有3个,分别为:0x8000000000000000、0x0800000000000000、0x0080000000000000,即该三个目标位置对应的检索条件值即对应当前数据库检索条件中的检索条件值。
[0054]
以关系型数据库为例,本发明提供的数据库检索方法的检索原理如图2所示。
[0055]
在一实施例中提供的数据库检索方法,可以在硬件资源有限(很难得到扩展)的情况下,也可以极大的利用现有资源达到更优的用户体验。
[0056]
具体地,在移动终端植入一个sqlite关系型数据库,其中有一个数据表存在10w条记录,在app中快速统计里面某一个门类的分布情况,通过使用本发明提供的方法结合该app可以快速响应用户查询统计,且查询耗时可减少到传统模式的1/10。并且,经过测试验证,数据量越大,耗时比例更优越。
[0057]
在同样硬件环境下,使用常规方式在关系型数据库中检索数据的效率基本是固定的,如果想提高效率,除了提升硬件配置之外,几乎别无他法,如果使用此法做检索,在不购买高配置硬件的前提下,可做到和高配同样甚至更高效率的用户体验,与此同时,也延长了
硬件资源的使用周期,节约相关硬件资源的采购成本等。
[0058]
除此之外,将本发明提供的数据库检索方法应用到pc、服务器上,效果也非常理想,商业效果体现明显。
[0059]
本发明实施例还提供一种数据库检索装置,如图3所示,该装置包括:
[0060]
存储模块401,用于将数据库待检索条件值进行枚举并存储在有序集合中;详细内容参见上述方法实施例中步骤s101的相关描述。
[0061]
提取模块402,用于提取有序集合中待检索条件值对应的位置;详细内容参见上述方法实施例中步骤s102的相关描述。
[0062]
确定模块403,用于根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段;详细内容参见上述方法实施例中步骤s103的相关描述。
[0063]
运算处理模块404,用于在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对,根据比对结果确定当前数据库检索条件中的多个检索条件值在有序集合中的多个目标位置,并对多个目标位置的信息进行处理得到的多个检索条件值对应的唯一条件数值进行运算;详细内容参见上述方法实施例中步骤s104的相关描述。
[0064]
检索模块405,用于根据运算结果在数据库中进行检索;详细内容参见上述方法实施例中步骤s105的相关描述。
[0065]
本发明实施例提供的数据库检索装置,将数据库待检索条件值进行枚举并存储在有序集合中;提取有序集合中待检索条件值对应的位置;根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值并将唯一目标位置整数值写入预设数据库的标志字段;在对当前数据库包含的数据进行检索时,将接收到的当前数据库检索条件中的多个检索条件值与有序集合中的检索条件值进行比对,根据比对结果确定当前数据库检索条件中的多个检索条件值在有序集合中的多个目标位置,并对多个目标位置的信息进行处理得到的多个检索条件值对应的唯一条件数值进行运算;根据运算结果在数据库中进行检索。根据位置顺序以及预设数据类型,按位形成不同位置的待检索条件值对应的唯一目标位置整数值,将非数值转换为数值;利用有序集合中的目标位置对应的唯一条件数值进行运算,将多条件转换为单条件的数值运算。因此,简化了运算复杂度,提高了检索效率。
[0066]
作为本发明实施例一种可选的实施方式,该确定模块包括:第一确定模块,用于根据位置顺序以及预设数据类型将待检索条件值按位赋值得到对应的比特位数值;第二确定模块,用于将比特位数值进行转换处理得到待检索条件值对应的唯一目标位置整数值。
[0067]
作为本发明实施例一种可选的实施方式,该装置还包括:第三确定模块,用于根据枚举得到的有序集合中包含的待检索条件值的数量确定预设数据类型。
[0068]
作为本发明实施例一种可选的实施方式,该装置还包括:第一运算模块,用于将多个目标位置的信息按位运算得到不同的多个目标位置整数值;第二运算模块,用于对多个目标位置整数值取或运算得到唯一条件数值。
[0069]
作为本发明实施例一种可选的实施方式,该装置还包括:第三运算模块,用于对唯一条件数值和标志字段取与运算;判断模块,用于当运算结果不为零时,则标志字段对应的
检索条件值对应当前数据库检索条件中的检索条件值。
[0070]
本发明实施例提供的数据库检索装置的功能描述详细参见上述实施例中数据库检索方法描述。
[0071]
本发明实施例还提供一种存储介质,如图4所示,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中数据库检索方法的步骤。该存储介质上还存储有音视频流数据,特征帧数据、交互请求信令、加密数据以及预设数据大小等。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0072]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0073]
本发明实施例还提供了一种电子设备,如图5所示,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0074]
处理器51可以为中央处理器(central processing unit,cpu)。处理器51还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0075]
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的数据库检索方法。
[0076]
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0077]
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图1-2所示实施例中的数据库检索方法。
[0078]
上述电子设备具体细节可以对应参阅图1至图2所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0079]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所
限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1