一种数据库建立方法及装置与流程

专利2022-06-29  153


本申请涉及数据库技术领域,具体而言,涉及一种数据库建立方法及装置。



背景技术:

随着科技的快速发展,越来越多的技术可以通过计算机来进行实现;众所周知,通过计算机实现的技术通常需要大量的数据支持,这就使得数据库的建立成为必要。目前,数据库的建立方式通常是顺序存储,这就使得在数据查询的过程中,需要对数据库数据进行重新排序,进而导致了数据量越大,查询效果越差的结果;另一方面,目前的数据库同时支持的并发查询数量很少,也无法应用在高并发的数据查询场景中。



技术实现要素:

本申请实施例的目的在于提供一种数据库建立方法及装置,通过该数据库建立方法及装置建立的数据库能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

本申请实施例第一方面提供了一种数据库建立方法,所述方法包括:

获取待存储数据的数据标识和排序属性值集合;

根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据;

根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

在上述实现过程中,该数据库建立方法可以优先获取大量的待存储数据,并同时获取每个待存储数据对应的数据id和排序属性值集合,其中,排序属性值集合包括多个排序属性值,且多个排序属性值之间存在先后排序的优先级顺序;在获取待存储数据的数据标识和排序属性值集合之后,将数据id和排序属性值集合进行预处理,以使预处理得到的结构符合预设的数据存储结构,以使该数据存储结构可以适应于预设的排序存储方案,便于数据的排序存储,从而得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

进一步地,所述方法还包括:

根据预设的映射存储结构、所述数据标识以及排序属性值集合生成符合所述映射存储结构的映射数据;

根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和排序属性值集合的数据表。

在上述实现过程中,该方法在获取到数据库之后,还可以对数据标识以及排序属性值集合进行处理,得到符合预设的映射存储结构的映射数据,该映射数据用于表示数据标识与排序属性值集合中除首位排序属性值的排序属性值的集合之间的映射关系;在获取到上述映射数据之后,在预设的映射存储方案提取相应的映射存储指令,以使上述映射数据可以嵌套至该映射存储指令中,以便于该映射存储指令可以将上述映射数据存储至预设的数据表中,其中该数据表用于查询所述数据标识和排序属性值集合。可见,实施这种实施方式,能够在建立好数据库之后,进一步建立保存数据id和排序数据的映射关系以支持查询单条数据的序号的数据集合(上述数据表),以使该数据库建立完成之后,可以在进行单条数据的查询中也起到较好的查询效果,从而有利于提高该数据库的使用使用效果,丰富该数据库的使用用途。

进一步地,所述根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据的步骤包括:

获取所述数据标识对应的数据库编号;

获取所述排序属性值集合包括的首位排序属性值;

根据所述数据标识和所述排序属性值集合生成排序数组;

将所述数据库编号、所述首位排序属性值以及所述排序数组作为结构参数代入至预设的数据存储结构,得到符合所述数据存储结构的排序数据。

在上述实现过程中,要获取排序数据,可以优先获取数据标识对应的数据库编号,以使数据标识皆存储至同一数据库中;然后,再获取排序属性值集合包括的首位排序属性值,并将其确认为数据库中,该数据排序优先级最高的属性值;再然后,根据数据标识和排序属性值集合生成排序数组,其中,该排序数组中不包括上述的首位排序属性值,至于数据标识,则置于除首位排序属性值的排序属性值集合的末端,用于表示该除首位排序属性值的排序属性值集合和数据之间的映射关系;最后,再将数据库编号、首位排序属性值以及排序数组作为结构参数代入至预设的数据存储结构,得到符合数据存储结构的排序数据,其中,结构参数是数据存储结构中包括的几个参数,而代入则是指对应替换之意。可见,实施这种实施方式,能够根据数据存储结构包括的多种结构参数对应获取相应的具体数据,以使数据存储结构在填充好具体数据之后,得到有效的排序数据,从而使得该排序数据的获取更加准确有效,也能够通过该种数据存储结构的排序数据进一步提高数据库中数据的有序性,进而便于有序、稳定的数据库建立,也有利于后续查询的使用便利性的提高。

进一步地,所述根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库的步骤包括:

根据预设的排序存储方案调用数据库存储指令;

根据所述数据库存储指令对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

在上述实现过程中,该方法在最终建立数据库过程中会优先根据预设的排序存储方案调用数据库存储指令,其中,该数据库存储指令可以为数据信息输入指令;而在获取到该数据库存储指令之后,该方法还可以将排序数据嵌入至该数据库存储指令,得到具有排序存储信息的指令,从而通过该指令输入排序存储信息(即排序数据)至对应数据库编号的数据库中,以使具有特定数据顺序的数据库得以建立。可见,实施这种实施方式,能够通过数据库存储指令将排序数据有序的存入数据库中,以使数据库在建立的过程中就具有相应的排序,便于解决数据量大时查询效果差的问题,同时,还使得该方法能够应用于高并发的数据查询场景中。

进一步地,所述根据预设的映射存储结构、所述数据标识以及所述排序属性值集合生成符合所述映射存储结构的映射数据的步骤包括:

获取所述数据标识对应的数据编号;

根据所述数据标识和所述排序属性值集合生成映射数组;

将所述数据编号、所述数据标识以及所述映射数组作为结构参数代入至预设的映射存储结构,得到符合所述映射存储结构的映射数据。

在上述实现过程中,该方法在获取映射数据的过程中可以优先获取数据标识对应的数据编号,然后再根据数据标识和排序属性值集合来生成映射数组,其中,该映射数组包括除首位排序属性值的排序属性值集合和数据编号;在获取到数据编号、映射数组以及数据标识之后,将数据编号、映射数组以及数据标识嵌入预设的映射存储结构,以使映射存储结构在结合具体数据之后生成映射数据,该映射数据亦是符合映射存储结构的。可见,实施这种实施方式,能够获取与数据对应的编号、标识以及与标识相对应的映射数组,从而实现数据、标识和映射数组之间一一对应的映射关系,进而使得该映射关系的建立有利于该数据库在使用时的查询便利性和查询准确性的提高。

进一步地,所述根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表的步骤包括:

根据预设的映射存储方案调用数据表生成指令;

根据所述数据表生成指令对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

在上述实现过程中,该方法在获取用于表示数据映射关系的数据表的过程中,可以根据预设的映射存储方案来调用数据表生成指令,其中,该数据表生成指令可以是用于生成哈希表的数据表生成指令;在获取到数据表生成指令之后,将映射数据嵌套至数据表生成指令中,以使新的数据表生成指令,可以直接将映射数据存储至数据表中,从而使得该数据表能够用于查询所述数据标识和所述排序属性值集合。可见,实施这种实施方式,能够过数据表生成指令将映射数据存储到数据表中,以使数据表可以在数据库建立完成之后有助于数据的单向查询,从而也能够解决数据量大时查询效果差的问题和数据查询过程中高并发处理难度大的问题。

进一步地,所述数据库建立方法通过预设的程序执行脚本来执行。

在上述实现过程中,使用预设的程序执行脚本来执行该方法,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本申请实施例第二方面提供了一种数据库建立装置,所述数据库建立装置包括:

获取单元,用于获取待存储数据的数据标识和排序属性值集合;

第一生成单元,用于根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据;

第一存储单元,用于根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

在上述实现过程中,该数据库建立装置可以通过获取单元来获取待存储数据的数据标识和排序属性值集合;还可以通过第一生成单元根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据;最后再通过第一存储单元来根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够通过各个单元通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

进一步地,所述数据库建立装置还包括:

第二生成单元,用于根据预设的映射存储结构、所述数据标识以及所述排序属性值集合生成符合所述映射存储结构的映射数据;

第二存储单元,用于根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

在上述实现过程中,能够在建立好数据库之后,进一步建立保存数据id和排序数据的映射关系以支持查询单条数据的序号的数据集合(上述数据表),以使该数据库建立完成之后,可以在进行单条数据的查询中也起到较好的查询效果,从而有利于提高该数据库的使用使用效果,丰富该数据库的使用用途。

进一步地,所述第一生成单元包括:

第一获取子单元,用于获取所述数据标识对应的数据库编号;

所述第一获取子单元,还用于获取所述排序属性值集合包括的首位排序属性值;

第一生成子单元,用于根据所述数据标识和所述排序属性值集合生成排序数组;

第一代入子单元,用于将所述数据库编号、所述首位排序属性值以及所述排序数组作为结构参数代入至预设的数据存储结构,得到符合所述数据存储结构的排序数据。

在上述实现过程中,能够根据数据存储结构包括的多种结构参数对应获取相应的具体数据,以使数据存储结构在填充好具体数据之后,得到有效的排序数据,从而使得该排序数据的获取更加准确有效,也能够通过该种数据存储结构的排序数据进一步提高数据库中数据的有序性,进而便于有序、稳定的数据库建立,也有利于后续查询的使用便利性的提高。

进一步地,所述第一存储单元包括:

第一调用子单元,用于根据预设的排序存储方案调用数据库存储指令;

第一存储子单元,用于根据所述数据库存储指令对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

在上述实现过程中,能够通过数据库存储指令将排序数据有序的存入数据库中,以使数据库在建立的过程中就具有相应的排序,便于解决数据量大时查询效果差的问题,同时,还使得该方法能够应用于高并发的数据查询场景中。

进一步地,所述第二生成单元包括:

第二获取子单元,用于获取所述数据标识对应的数据编号;

第二生成子单元,用于根据所述数据标识和所述排序属性值集合生成映射数组;

第二代入子单元,用于将所述数据编号、所述数据标识以及所述映射数组作为结构参数代入至预设的映射存储结构,得到符合所述映射存储结构的映射数据。

在上述实现过程中,能够获取与数据对应的编号、标识以及与标识相对应的映射数组,从而实现数据、标识和映射数组之间一一对应的映射关系,进而使得该映射关系的建立有利于该数据库在使用时的查询便利性和查询准确性的提高。

进一步地,所述第二存储单元包括:

第二调用子单元,用于根据预设的映射存储方案调用数据表生成指令;

第二存储子单元,用于根据所述数据表生成指令对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

在上述实现过程中,能够过数据表生成指令将映射数据存储到数据表中,以使数据表可以在数据库建立完成之后有助于数据的单向查询,从而也能够解决数据量大时查询效果差的问题和数据查询过程中高并发处理难度大的问题。

进一步地,所述数据库建立装置基于预设的程序执行脚本来执行。

在上述实现过程中,使用预设的程序执行脚本来执行该方法,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的数据库建立方法。

本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的数据库建立方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种数据库建立方法的流程示意图;

图2为本申请实施例提供的另一种数据库建立方法的流程示意图;

图3为本申请实施例提供的另一种数据库建立方法的流程示意图;

图4为本申请实施例提供的一种数据库建立装置的结构示意图;

图5为本申请实施例提供的另一种数据库建立装置的结构示意图

图6为本申请实施例提供的一种通过lua脚本写入待排序数据的流程示意图;

图7为本申请实施例提供的一种读取数据列表的流程示意图;

图8为本申请实施例提供的一种读取单条数据序号的流程示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

实施例1

请参看图1,图1为本申请实施例提供了一种数据库建立方法的流程示意图。该方法应用于数据库的建立过程,具体的,该方法应用于数据量较大的数据库的建立之时,用于从根本上解决传统利用sql语句来指定多个排序条件在数据库中进行数据查询的性能低下问题,和同时并发查询数量较少的问题。其中,该数据库建立方法包括:

s101、获取待存储数据的数据标识和排序属性值集合。

本实施例中,待存储数据可以为一个数据,也可以为多个数据,对此本实施例中不作任何限定。

在本实施例中,待存储数据可以理解为多个待存储数据中的一个表征数据,可以理解的时候,多个待存储数据中,每个待存储数据的存储流程皆相同。

在本实施例中,该待存储数据可以作为多个数据中的一个数据进行描述,其中,多个数据种的每一个数据在处理的过程中都可以理解为该待存储数据的处理过程中。

本实施例中,数据标识是待存储数据的数据id,即待存储数据的身份标识。

在本实施例中,数据id可以为x1。

本实施例中,排序属性值集合是多个排序属性值的集合,其中,将排序属性值设为s1,s2…sn时,待存储数据将按照s1,s2…sn等多个属性进行排序,即:先s1排序,s1相同的情况下,再按s2排序,sn以此类推。

s102、根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据。

本实施例中,数据存储结构是预设的,该数据存储结构是符合redis的sortedsets数据结构。

本实施例中,数据标识为上述的数据id。

本实施例中,排序数据为符合redis的sortedsets数据结构的数据集合。

s103、根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。

本实施例中,排序存储方案包括排序存储指令以及该排序存储指令的应用时机和应用场合。

在本实施例中,排序存储的过程中,因为排序数据具有排序的效果,因此,存储的过程中自然而然地就会生成特定数据顺序,以使生成的数据库具有该特定数据顺序。

本实施例中,数据库建立方法通过预设的程序执行脚本来执行。

实施这种实施方式,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。

在本实施例中,该方法的执行主体还可以为智能手机和平板等智能设备,对此本实施例中不作任何限定。

本实施例中,在传统的基于redis的sortedsets数据结构,将要排序的多个属性按高低位组装成一个大的数字保存到score值中,sortedsets会在数据新增的时候就按score大小顺序保存。查询的时候,直接利用redis提供的api。这种方案的局限性在于sortedsets的score值是用64位浮点数保存,只允许在-(2^53)到 (2^53)范围内。而如果排序属性比较多,或者某几个属性的值也是64位长度,就会出现组装出的值超过score值的范围。超过这个范围score会用科学计数法表示,会损失精度导致排序错误。由此可见,实施本实施例描述的这种实施方式,能够避免上述的问题出现,从而提高数据库使用效果。

可见,实施图1所描述的数据库建立方法,能够优先获取大量的待存储数据,并同时获取每个待存储数据对应的数据id和排序属性值集合,其中,排序属性值集合包括多个排序属性值,且多个排序属性值之间存在先后排序的优先级顺序;在获取待存储数据的数据标识和排序属性值集合之后,将数据id和排序属性值集合进行预处理,以使预处理得到的结构符合预设的数据存储结构,以使该数据存储结构可以适应于预设的排序存储方案,便于数据的排序存储,从而得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

实施例2

请参看图2,图2为本申请实施例提供的另一种数据库建立方法的流程示意图。图2所描述的数据库建立方法的流程示意图是根据图1所描述的数据库建立方法的流程示意图进行改进得到的。其中,该数据库建立方法包括:

s201、获取待存储数据的数据标识和排序属性值集合。

本实施例中,待存储数据可以为一个数据,也可以为多个数据,对此本实施例中不作任何限定。

在本实施例中,待存储数据可以理解为多个待存储数据中的一个表征数据,可以理解的时候,多个待存储数据中,每个待存储数据的存储流程皆相同。

在本实施例中,该待存储数据可以作为多个数据中的一个数据进行描述,其中,多个数据种的每一个数据在处理的过程中都可以理解为该待存储数据的处理过程中。

本实施例中,数据标识是待存储数据的数据id,即待存储数据的身份标识。

在本实施例中,数据id可以为x1。

本实施例中,排序属性值集合是多个排序属性值的集合,其中,将排序属性值设为s1,s2…sn时,待存储数据将按照s1,s2…sn等多个属性进行排序,即:先s1排序,s1相同的情况下,再按s2排序,sn以此类推。

s202、根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据。

本实施例中,数据存储结构是预设的,该数据存储结构是符合redis的sortedsets数据结构。

本实施例中,数据标识为上述的数据id。

本实施例中,排序数据为符合redis的sortedsets数据结构的数据集合。

s203、根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。

本实施例中,排序存储方案包括排序存储指令以及该排序存储指令的应用时机和应用场合。

在本实施例中,排序存储的过程中,因为排序数据具有排序的效果,因此,存储的过程中自然而然地就会生成特定数据顺序,以使生成的数据库具有该特定数据顺序。

s204、根据预设的映射存储结构、数据标识以及排序属性值集合生成符合映射存储结构的映射数据。

本实施例中,映射存储结构是预设的,该映射存储结构是符合redis的hashes(哈希值)结构。

本实施例中,数据标识为上述的数据id。

本实施例中,排序数据为符合redis的hashes数据结构的数据集合。

s205、根据预设的映射存储方案对映射数据进行存储,得到用于查询数据标识和排序属性值集合的数据表。

本实施例中,数据表可以为哈希表。

本实施例中,映射存储方案包括映射存储指令以及该映射存储指令的应用时机和应用场合。

在本实施例中,该存储的过程中可以一条数据一条数据的存储到数据表中。

实施这种实施方式,能够将用户id和排序属性值集合的映射关系保存到redis的hashes结构中,用于满足查询指定数据id对应的排序序号的需要。

本实施例中,数据库建立方法通过预设的程序执行脚本来执行。

实施这种实施方式,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本实施例中,程序执行脚本可以为lua脚本,其中,之所以使用lua脚本来实现保存逻辑,是因为redis会将lua脚本作为一个整体执行,使得数据库建立过程中不会被其他命令插入,从而保证redis中数据的一致性。

本实施例中,数据在写入redis之后已经是按照指定顺序进行存储,我们查询的时候只需要调用redis的api来读取指定范围的排序好的数据即可。

本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。

在本实施例中,该方法的执行主体还可以为智能手机和平板等智能设备,对此本实施例中不作任何限定。

可见,实施图2所描述的数据库建立方法,通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中

实施例3

请参看图3,图3为本申请实施例提供的另一种数据库建立方法的流程示意图。图3所描述的数据库建立方法的流程示意图是根据图2所描述的数据库建立方法的流程示意图进行改进得到的。其中,该数据库建立方法包括:

s301、获取待存储数据的数据标识和排序属性值集合。

本实施例中,待存储数据可以为一个数据,也可以为多个数据,对此本实施例中不作任何限定。

在本实施例中,待存储数据可以理解为多个待存储数据中的一个表征数据,可以理解的时候,多个待存储数据中,每个待存储数据的存储流程皆相同。

在本实施例中,该待存储数据可以作为多个数据中的一个数据进行描述,其中,多个数据种的每一个数据在处理的过程中都可以理解为该待存储数据的处理过程中。

本实施例中,数据标识是待存储数据的数据id,即待存储数据的身份标识。

在本实施例中,数据id可以为x1。

本实施例中,排序属性值集合是多个排序属性值的集合,其中,将排序属性值设为s1,s2…sn时,待存储数据将按照s1,s2…sn等多个属性进行排序,即:先s1排序,s1相同的情况下,再按s2排序,sn以此类推。

s302、获取数据标识对应的数据库编号。

本实施例中,数据库编号是指数据的排名,其中该数据的排名可以用r1。

在本实施例中,数据库编号在数据库检索的过程中,可以等于数据库查询起始值n1加上遍历的索引i1得到的数据的排名r1。

本实施例中,数据库编号对应r1。

s303、获取排序属性值集合包括的首位排序属性值。

本实施例中,排序属性值结合包括s1,s2…sn,其中首位排序属性值为s1。

本实施例中,首位排序属性值对应s1。

s304、根据数据标识和排序属性值集合生成排序数组。

本实施例中,将上述s2…sn和x1用“:”分隔按顺序拼接成一个字符串v1。

在本实施例中,排序数组对应v1。

s305、将数据库编号、首位排序属性值以及排序数组作为结构参数代入至预设的数据存储结构,得到符合数据存储结构的排序数据。

本实施例中,预设的数据存储结构为redis(remotedictionaryserver,远程字典服务)的sortedsets数据结构,而sortedsets数据结构则包括keyscoremember三个结构参数。

在本实施例中,redis的sortedsets数据结构,先按照score值排序,score相同的情况下再按照member值进行字典排序。score值用64位浮点数保存,只允许在-(2^53)到 (2^53)范围内。其中,member值无长度限制。

在本实施例中,上述的数据库编号r1代入key的位置,上述的首位排序属性值s1代入score的位置,排序数组v1代入member的位置,从而得到符合数据存储结构的排序数据。

实施这种实施方式,能够实现了先按s1排序,再按s2…sn排序的要求。其中,member中添加x1是为了在查询的时候能通过member值取出数据id。

s306、根据预设的排序存储方案调用数据库存储指令。

本实施例中,数据库存储指令可以为rediszadd命令。

在本实施例中,rediszadd命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。如果有序集合key不存在,则创建一个空的有序集并执行zadd操作。当key存在但不是有序集类型时,返回一个错误。

本实施例中,rediszadd命令基本语法如下:

redis127.0.0.1:6379>zaddkey_namescore1value1..scorenvaluen。

s307、根据数据库存储指令对排序数据进行排序存储,得到具有特定数据顺序的数据库。

本实施例中,该步骤可以理解为调用rediszadd命令存储排序数据的至redis的过程。

s308、获取数据标识对应的数据编号。

本实施例中,数据编号对应的是每个数据对应的一个编号,该编号通常用h1标标识。

s309、根据数据标识和排序属性值集合生成映射数组。

本实施例中,映射数组内容与排序数组相同,且皆以v1指代。

s310、将数据编号、数据标识以及映射数组作为结构参数代入至预设的映射存储结构,得到符合映射存储结构的映射数据。

本实施例中,映射存储结构为redis的hashes结构,该redis的hashes结构包括keyfieldvalue三个结构参数。

在本实施例中,上述的数据编号h1代入key的位置,上述的映射数组v1代入field的位置,上述的数据标识x1代入field的位置,从而得到符合映射存储结构的映射数据。

s311、根据预设的映射存储方案调用数据表生成指令。

本实施例中,数据表生成指令可以为redishset命令。

在本实施例中,redishset命令用于为哈希表中的字段赋值。如果哈希表不存在,一个新的哈希表被创建并进行hset操作。如果字段已经存在于哈希表中,旧值将被覆盖。s312、根据数据表生成指令对映射数据进行存储,得到用于查询数据标识和排序属性值集合的数据表。

本实施例中,redishset命令基本语法如下:

redis127.0.0.1:6379>hsetkey_namefieldvalue。

本实施例中,数据库建立方法通过预设的程序执行脚本来执行。

实施这种实施方式,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本实施例中,程序执行脚本可以为lua脚本,其中,之所以使用lua脚本来实现保存逻辑,是因为redis会将lua脚本作为一个整体执行,使得数据库建立过程中不会被其他命令插入,从而保证redis中数据的一致性。

在本实施例中,上述过程可以理解为lua写入待排序数据的过程。

本实施例中,数据在写入redis之后已经是按照指定顺序进行存储,我们查询的时候只需要调用redis的api来读取指定范围的排序好的数据即可。

举例来说,请参阅图6,图6是lua写入待排序数据的流程示意图,其中图6中流程与本实施例解释说明中描述的内容相同,因此不再多加赘述。

请参阅图7,图7是读取数据列表的流程示意图,其中,对于读取排序数据列表原理解释如下:该过程通过zrevrangebyscore指令按照指定的起始序号n1和结束序号n2从redis的sortedsets数据结构获得排序好的数据列表l1;然后,按顺序遍历l1,对其中的每条字符串数据截取最后一个“:”之后的字符串,保存为字符串x1,x1即是数据的id,n1加上遍历的索引i1即是数据的排名r1。这样我们就查询到了n1到n2范围之间的全部数据id以及每个数据id的排序序号。

请参阅图8,图8是读取单条数据序号的流程示意图,其中,对于读取单条数据排序序号原理解释如下:调用hget命令及参数x1(数据id)从redis的hashes数据结构中获得d1,d1与x1保存在sortedsets结构的member值相同;再调用命令zrevrank命令及参数d1从redis的sortedsets结构中获得数据x1的排序序号m1;这样就获得了单条数据的排序之后的序号。

本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。

在本实施例中,该方法的执行主体还可以为智能手机和平板等智能设备,对此本实施例中不作任何限定。

可见,实施图3所描述的数据库建立方法,能够在建立好数据库之后,进一步建立保存数据id和排序数据的映射关系以支持查询单条数据的序号的数据集合(上述数据表),以使该数据库建立完成之后,可以在进行单条数据的查询中也起到较好的查询效果,从而有利于提高该数据库的使用使用效果,丰富该数据库的使用用途;还能够根据数据存储结构包括的多种结构参数对应获取相应的具体数据,以使数据存储结构在填充好具体数据之后,得到有效的排序数据,从而使得该排序数据的获取更加准确有效,也能够通过该种数据存储结构的排序数据进一步提高数据库中数据的有序性,进而便于有序、稳定的数据库建立,也有利于后续查询的使用便利性的提高;还能够通过数据库存储指令将排序数据有序的存入数据库中,以使数据库在建立的过程中就具有相应的排序,便于解决数据量大时查询效果差的问题,同时,还使得该方法能够应用于高并发的数据查询场景中;还能够获取与数据对应的编号、标识以及与标识相对应的映射数组,从而实现数据、标识和映射数组之间一一对应的映射关系,进而使得该映射关系的建立有利于该数据库在使用时的查询便利性和查询准确性的提高;能够过数据表生成指令将映射数据存储到数据表中,以使数据表可以在数据库建立完成之后有助于数据的单向查询,从而也能够解决数据量大时查询效果差的问题和数据查询过程中高并发处理难度大的问题;最后,使用预设的程序执行脚本来执行该方法,还能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

实施例4

请参看图4,图4为本申请实施例提供的一种数据库建立装置的结构示意图。其中,该数据库建立装置包括:

获取单元410,用于获取待存储数据的数据标识和排序属性值集合;

第一生成单元420,用于根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据;

第一存储单元430,用于根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。

本实施例中,对于数据库建立装置的解释说明可以参照实施例1或实施例2或实施例3中的描述,对此本实施例中不再多加赘述。

可见,实施图4所描述的数据库建立装置,能够通过获取单元来获取待存储数据的数据标识和排序属性值集合;还可以通过第一生成单元根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据;最后再通过第一存储单元来根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够通过各个单元通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

实施例5

请参看图5,图5为本申请实施例提供的另一种数据库建立装置的结构示意图。图5所描述的数据库建立装置的结构示意图是根据图4所描述的数据库建立装置的结构示意图进行改进得到的。其中,该数据库建立装置还包括:

第二生成单元440,用于根据预设的映射存储结构、数据标识以及排序属性值集合生成符合映射存储结构的映射数据;

第二存储单元450,用于根据预设的映射存储方案对映射数据进行存储,得到用于查询数据标识和排序属性值集合的数据表。

作为一种可选的实施方式,第一生成单元420包括:

第一获取子单元421,用于获取数据标识对应的数据库编号;

第一获取子单元421,还用于获取排序属性值集合包括的首位排序属性值;

第一生成子单元422,用于根据数据标识和排序属性值集合生成排序数组;

第一代入子单元423,用于将数据库编号、首位排序属性值以及排序数组作为结构参数代入至预设的数据存储结构,得到符合数据存储结构的排序数据。

作为一种可选的实施方式,第一存储单元430包括:

第一调用子单元431,用于根据预设的排序存储方案调用数据库存储指令;

第一存储子单元432,用于根据数据库存储指令对排序数据进行排序存储,得到具有特定数据顺序的数据库。

在上述实现过程中,能够通过数据库存储指令将排序数据有序的存入数据库中,以使数据库在建立的过程中就具有相应的排序,便于解决数据量大时查询效果差的问题,同时,还使得该方法能够应用于高并发的数据查询场景中。

作为一种可选的实施方式,第二生成单元440包括:

第二获取子单元441,用于获取数据标识对应的数据编号;

第二生成子单元442,用于根据数据标识和排序属性值集合生成映射数组;

第二代入子单元443,用于将数据编号、数据标识以及映射数组作为结构参数代入至预设的映射存储结构,得到符合映射存储结构的映射数据。

作为一种可选的实施方式,第二存储单元450包括:

第二调用子单元451,用于根据预设的映射存储方案调用数据表生成指令;

第二存储子单元452,用于根据数据表生成指令对映射数据进行存储,得到用于查询数据标识和排序属性值集合的数据表。

作为一种可选的实施方式,数据库建立装置基于预设的程序执行脚本来执行。

在上述实现过程中,使用预设的程序执行脚本来执行该方法,能够将该方法作为一个整体来进行执行,以使该方法在执行的过程中不会被其他命令所插入,从而能够保证数据库中数据的一致性,进而能够保证数据存储的稳定性。

本实施例中,对于数据库建立装置的解释说明可以参照实施例1或实施例2或实施例3中的描述,对此本实施例中不再多加赘述。

可见,实施图5所描述的数据库建立装置,能够通过获取单元来获取待存储数据的数据标识和排序属性值集合;还可以通过第一生成单元根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据;最后再通过第一存储单元来根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够通过各个单元通过对待存储数据的预处理,获取符合数据存储结构的排序数据,以使最终建立的数据库是基于这些排序数据进行构建得到的,从而使得数据库可以通过数据库中数据本身具有的相应排序完成有序构建,进而使得数据库在被使用的过程中,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

本申请实施例提供了一种电子设备,包括存储器以及处理器,存储器用于存储计算机程序,处理器运行计算机程序以使电子设备执行本申请实施例1、实施例2以及实施例3中任一项数据库建立方法。

本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本申请实施例1、实施例2以及实施例3中任一项数据库建立方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。


技术特征:

1.一种数据库建立方法,其特征在于,所述方法包括:

获取待存储数据的数据标识和排序属性值集合;

根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据;

根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

2.根据权利要求1所述的数据库建立方法,其特征在于,所述方法还包括:

根据预设的映射存储结构、所述数据标识以及所述排序属性值集合生成符合所述映射存储结构的映射数据;

根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

3.根据权利要求1所述的数据库建立方法,其特征在于,所述根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据的步骤包括:

获取所述数据标识对应的数据库编号;

获取所述排序属性值集合包括的首位排序属性值;

根据所述数据标识和所述排序属性值集合生成排序数组;

将所述数据库编号、所述首位排序属性值以及所述排序数组作为结构参数代入至预设的数据存储结构,得到符合所述数据存储结构的排序数据。

4.根据权利要求1所述的数据库建立方法,其特征在于,所述根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库的步骤包括:

根据预设的排序存储方案调用数据库存储指令;

根据所述数据库存储指令对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

5.根据权利要求2所述的数据库建立方法,其特征在于,所述根据预设的映射存储结构、所述数据标识以及所述排序属性值集合生成符合所述映射存储结构的映射数据的步骤包括:

获取所述数据标识对应的数据编号;

根据所述数据标识和所述排序属性值集合生成映射数组;

将所述数据编号、所述数据标识以及所述映射数组作为结构参数代入至预设的映射存储结构,得到符合所述映射存储结构的映射数据。

6.根据权利要求2所述的数据库建立方法,其特征在于,所述根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表的步骤包括:

根据预设的映射存储方案调用数据表生成指令;

根据所述数据表生成指令对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

7.根据权利要求1所述的数据库建立方法,其特征在于,所述数据库建立方法通过预设的程序执行脚本来执行。

8.一种数据库建立装置,其特征在于,所述数据库建立装置包括:

获取单元,用于获取待存储数据的数据标识和排序属性值集合;

第一生成单元,用于根据预设的数据存储结构、所述数据标识以及所述排序属性值集合生成符合所述数据存储结构的排序数据;

第一存储单元,用于根据预设的排序存储方案对所述排序数据进行排序存储,得到具有特定数据顺序的数据库。

9.根据权利要求8所述的数据库建立装置,其特征在于,所述数据库建立装置还包括:

第二生成单元,用于根据预设的映射存储结构、所述数据标识以及所述排序属性值集合生成符合所述映射存储结构的映射数据;

第二存储单元,用于根据预设的映射存储方案对所述映射数据进行存储,得到用于查询所述数据标识和所述排序属性值集合的数据表。

10.根据权利要求8所述的数据库建立装置,其特征在于,所述数据库建立装置基于预设的程序执行脚本来执行。

11.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至7中任一项所述的数据库建立方法。

12.一种可读存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至7任一项所述的数据库建立方法。

技术总结
本申请实施例提供一种数据库建立方法及装置,涉及数据库领域,该方法包括:获取待存储数据的数据标识和排序属性值集合;根据预设的数据存储结构、数据标识以及排序属性值集合生成符合数据存储结构的排序数据;根据预设的排序存储方案对排序数据进行排序存储,得到具有特定数据顺序的数据库。可见,实施这种实施方式,能够解决数据量大时查询效果差的问题,并且还能够应用于高并发的数据查询场景中。

技术研发人员:张良
受保护的技术使用者:广州虎牙科技有限公司
技术研发日:2020.01.07
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25893.html

最新回复(0)