CN117725054A - 基于列存储格式的数据库排序方法、计算机设备及存储介质 - Google Patents

基于列存储格式的数据库排序方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN117725054A
CN117725054A CN202311411784.2A CN202311411784A CN117725054A CN 117725054 A CN117725054 A CN 117725054A CN 202311411784 A CN202311411784 A CN 202311411784A CN 117725054 A CN117725054 A CN 117725054A
Authority
CN
China
Prior art keywords
column
ordering
interval
equivalent
position sequence
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.)
Pending
Application number
CN202311411784.2A
Other languages
English (en)
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.)
Dameng Data Technology Jiangsu Co ltd
Original Assignee
Dameng Data Technology Jiangsu Co ltd
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 Dameng Data Technology Jiangsu Co ltd filed Critical Dameng Data Technology Jiangsu Co ltd
Priority to CN202311411784.2A priority Critical patent/CN117725054A/zh
Publication of CN117725054A publication Critical patent/CN117725054A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于列存储格式的数据库排序方法、计算机设备及存储介质,包括:遍历排序列的数据构建一个位置序列数组,初始化等值区间列表中的初始等值区间;根据关键字表达式ei的数据类型,确定排序算法;使用排序列的数据求出ei的值,构成ei列;对ei列进行排序,得到新的位置序列数组,并判断ei是否为最后一个关键字表达式,若是,则对每一列,按照新的位置序列数组构造结果列;若不是,则按照新的位置序列数组,对等值区间列表进行分割,判断是否存在等值区间,若存在,则使用下一个关键字表达式ei+1,并根据ei+1列对等值区间内的位置序列进行排序,得到新的位置序列数组。

Description

基于列存储格式的数据库排序方法、计算机设备及存储介质
技术领域
本发明属于数据库技术领域,具体为一种基于列存储格式的数据库排序方法、计算机设备及存储介质。
背景技术
基于列格式的排序算法通常会构建一个定长的数组,数组的内容通常是一个Int64的值,该值是指向具体的记录行的位置信息。在进行排序比较时,可以通过序列中的行位置信息获取行数据,对实际需要排序的字段进行比较,并通过交换序列中的地址位置进行排序。当排序完成后,根据序列重构数据,获得排序后的结果集。
该排序方法还是以行的形式对列数据进行排序,无法根据不同的数据类型采用不同的排序方法进行优化(数值类型可以选择基数排序,字符类型选择快排等)。同时由于该方法是以行的形式扫描列数据,导致该方法在实际执行时会产生大量的寻址操作和分支指令,导致CPU缓存的失效,并且在对宽字节数据类型(字符类型、128类型、数组类型等)进行比较时无法使用SIMD(单指令流多数据流Single Instruction Multiple Data)进行性能提升。
发明内容
发明目的:为解决现有排序方法中存在的排序性能差的问题,本发明提出了一种基于列存储格式的数据库排序方法、计算机设备及存储介质,通过提升CPU缓存的命中和减少寻址和分支操作、根据数据类型选择适用的排序算法和比较操作提升排序性能,适用于数据库单列或多列的排序。
技术方案:一种基于列存储格式的数据库排序方法,包括以下步骤:
步骤1:遍历排序列的数据构建一个位置序列数组,初始化等值区间列表中的初始等值区间:[0,N),其中,N表示列的高度;
步骤2:记当前排序过程中使用的关键字表达式,记为ei,根据ei的数据类型,确定排序算法;
步骤3:使用排序列的数据求出ei的值,构成ei列;
步骤4:按照步骤2确定的排序算法,对ei列进行排序,得到新的位置序列数组,并判断ei是否为最后一个关键字表达式,若是,则对每一列,按照新的位置序列数组构造结果列;若不是,则执行步骤5;
步骤5:按照新的位置序列数组,对等值区间列表进行分割,判断是否存在等值区间,若存在,则执行步骤6;若不存在,则对每一列,按照新的位置序列数组构造结果列;
步骤6:使用下一个关键字表达式,记为ei+1,根据ei+1的数据类型,确定排序算法,使用排序列的数据求出ei+1的值,构成ei+1列;按照确定的排序算法,根据ei+1列对等值区间内的位置序列进行排序,得到新的位置序列数组,并判断ei+1是否为最后一个关键字表达式,若是,则对每一列,按照新的位置序列数组构造结果列;若不是,则执行步骤5。
进一步的,步骤4中,所述的按照步骤2确定的排序算法,对ei列进行排序,得到新的位置序列数组,具体包括:
排序算法中每次操作首先通过位置序列获取实际行号;
根据实际行号读取ei列数据进行比较;
比较完成后根据比较结果交换列数据对应的位置序列值,得到新的位置序列数组。
进一步的,若列中存在NULL值,则需在排序前先遍历列,将NULL值对应的序列交换到排序时指定的NULL值位置。
进一步的,步骤5中,所述的按照新的位置序列数组,对等值区间列表进行分割,具体操作包括:
创建一个临时等值区间列表,此时该临时等值区间列表为空;
对等值区间列表内的每个等值区间,以其左端点作为当前区间起始值start,遍历区间内的位置序列,一旦发现序列的第j行对应的ei值不等于当前区间起始值时,则更新当前区间起始值为j;若此时j>start+1,则向临时等值区间列表添加一个新的等值区间[start,j);
若等值区间列表内不存在当前区间起始值start开始的等值区间,且N>start+1,则向临时等值区间列表添加新的等值区间[start,N);
用临时等值区间列表的内容替换等值区间列表的内容,并清空临时等值区间列表。
本发明公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现一种基于列存储格式的数据库排序方法的步骤。
本发明公开了一种存储介质,所述存储介质存储有数据库排序程序,所述数据库排序程序被至少一个处理器执行时实现一种基于列存储格式的数据库排序方法的步骤。
有益效果:本发明与现有技术相比,具有以下优点:
(1)本发明方法根据数据类型选择不同的排序算法,能有效提升排序性能;
(2)本发明方法通过对每个列独立排序减少寻址操作和分支指令,充分利用现代CPU架构特性提升排序性能;
(3)本发明方法根据数据类型选用SIMD指令进行指令级比较操作,提升排序性能;
(4)本发明方法利用列数据的特性,使用列数据的算法提升排序性能。
附图说明
图1为同一组数据按行与列形式组织的区别示意图;
图2为对F1排序时,初始的序列以及排序后位置信息的变化示意图;
图3为对F1排序后的等值区间信息示意图;
图4为实施例1的流程示意图;
图5为实施例2的流程示意图;
图6为实施例3的流程示意图。
具体实施方式
现对以下实施例中涉及的技术术语作如下解释:
列数据指具有相同数据类型的若干条数据,通常是数据表中某一列对应的数据,或者是由某个表达式计算得来的数据。列数据中每条数据都在列中有一个逻辑上的、连续的位置,并且可以根据该位置的编号访问列中该位置对应的一条数据。图1举例说明了同一组数据按行与列形式组织的区别。
列数据的排序是指对一个或多个列的数据,按照一个或多个关键字表达式进行排序的操作。具体来说,所有参与排序的列一般含有相同数量的数据(也称为等高),而从逻辑上来看,排序的单位是每一列相同位置的数据组成的一组数据,称为一行,即排序前后,每一行内的数据不会发生变化,排序仅改变行之间的排列顺序。排序时会指定一个或多个关键字表达式,指定多个关键字表达式时,根据指定的关键字排列顺序进行顺序比较操作,称最先进行比较的关键字表达式为首个关键字表达式(记为e1),其次进行比较的关键字表达式为第二个关键字表达式(记为e2),以此类推。进行排序时,对每个关键字表达式,按照表达式之间的比较顺序,先对每行求出表达式的值,再根据每行表达式值的大小对所有行进行排序。具体来说,对任意两行数据,首先根据e1的值比较,如果比较结果为不等,即可直接确定两行的相对顺序;如果比较结果为相等,则再根据e2的值比较,以此类推,直到两行的顺序被确定或者所有表达式的比较结果均相等为止。对于后者,两行的实际相对顺序由数据库系统的具体实现决定。
位置序列是记录排序过程中行位置的序列数组。记参与排序的任一列的数据量为N(注意所有参与排序的列是等高的),则位置序列的数据总量也为N。位置序列的第i个值表示排序结果的第i行对应原数据的行位置编号,其初始值即为i;例如位置序列的第5个值在排序结束后变为8,表示原数据中的第5行在排序结束后移动到了第8行。实际的排序过程中,不直接操作原始列数据或关键字表达式求值后的数据,而是通过位置序列中的位置信息取得表达式值并比较,若比较结果与相对位置相反,则交换序列中的位置数据来表示对应行之间的排列顺序的变化。排序完成后,仅需根据位置序列数据,将原数据列中的数据写到结果集目标位置即可。
等值区间是记录一段连续位置信息的数据结构,具体来说,位置序列在区间范围内对应的数据行对一个或多个关键字表达式相等。等值区间是一个左闭右开区间,记录左端点和右端点两个行位置编号,如[i,j)表示从位置序列第i个值开始,到第j个值(不包含)为止对应的数据行对一个或多个关键字表达式相等。每次使用一个关键字表达式进行排序后,都会产生一组等值区间。如果按关键字表达式的比较顺序逐个使用表达式进行排序,则由于后续表达式仅在先前表达式值相等时使用,实际上后续表达式仅在先前表达式产生的各等值区间内排序,从结果来看,相当于对已有等值序列的再次分割。
等值区间列表是记录当前排序过程的等值区间的列表。一个完整的排序流程需要一个等值区间列表(记为R,初始值为包含所有行的区间,若行号从0开始则为[0,N))和一个临时的等值区间列表(记为TR)。使用一个新的关键字表达式进行排序时,在R中的每个等值区间内进行排序,并将新生成的等值区间添加到TR内;排序完成后再用其替换R。可选的,某等值区间仅包含一行(右端点位置减左端点位置值为1)时,可以不实际生成数据结构,以跳过已确定相对顺序的非等值数据的处理。
为了便于理解,使用如表1所示的数据表Table1举例说明排序流程,并且记以下关于排序表达式和排序方向的约定为约定1:排序使用的表达式按顺序分别为F1、F2、F3,排序方向均为升序。
表1数据表Table1中的数据
行号\列名 F1 F2 F3
0 1 6 2
1 3 4 3
2 2 1 4
3 2 2 2
4 1 2 5
图2描述了对F1排序时,初始的序列以及排序后位置信息的变化。排序时,F1的第1行和第4行值分别为3和1,与约定1中约定的升序相反,因此交换序列中的第1个值和第4个值,得到排序后的序列。
图3描述了经过对F1排序后的等值区间信息。序列位置[0,2)内对应数据的行位置0和4,对应的F1值均为1,所以记[0,2)为一个等值区间。序列位置[2,4)同理。
现结合附图和实施例进一步阐述本发明的技术方案。
实施例1:
本实施例公开了以一个或多个关键字,对若干列数据进行排序的流程。例如数据库系统中存在以下三列数据:col1、col2、col3,以e1为首个关键字表达式、e2为第二个关键字表达式、e3为第三个关键字表达式(类似于SQL语句ORDER BY e1,e2,e3),对上述三列数据进行排序。
为了便于描述,记当前排序过程中使用的关键字表达式为ei,下个待使用的关键字表达式(如果存在)为ei+1。i初始值为1,初始时ei表示首个关键字表达式e1
图4为实施例1的流程示意图,主要包括以下步骤:
S11:为列数据构建位置序列,并在等值区间列表R中添加初始等值区间:[0,N)(N表示列的高度)。以表1数据为例,构建的初始位置序列数据为{0,1,2,3,4},等值区间列表R中的初始等值区间为[0,5)。
S12:根据ei的数据类型,选择最合适的排序算法,并根据排序的方向、NULL值的位置等要求,设置排序算法的相关参数。
例如,若数据类型为整数,则可以使用性能更好的基数排序;若数据类型为(短)字符串等宽字节类型,还可以考虑是否使用SIMD技术加速字符串的比较,如在Intel平台使用_SSE指令集例:mm_cmpeq_epi8等intrinsic函数快速比较字符串。
传统的数据库排序实现中,由于以行为排序单位,无法根据某一列的数据类型为其选择更优的排序算法,从而丧失了可能的性能优化空间。而本实施例描述的排序方法以单列为排序单位,因此可以有效利用列的数据类型为每列选择更优的排序算法,以提升整体排序性能。
可选的,可以在选择排序算法时将更多要求纳入决策过程,比如排序的稳定性等。
S13:如果需要,使用列数据求出ei的值(结果也为列数据,称为ei列)。
以表1数据和约定1为例,e1(即F1)列的数据为{1,3,2,2,1},e3(即F3)列的数据为{2,3,4,2,5}。
S14:使用已选择的排序算法对ei列进行排序,排序算法中每次操作首先通过位置序列获取实际行号,再根据实际行号读取ei列数据进行比较,比较完成后根据比较结果交换列数据对应的位置序列值,最终更新位置序列,完成单列的排序。如果完成对ei列排序后已经使用了所有关键字表达式,则排序已经完成,直接跳转到步骤S17。
以表1数据和约定1为例,对e1(即F1)列排序后,得到的位置序列和等效的中间结果如表2所示。同理,对e2(即F2)列排序后,得到的位置序列数据为{4,0,2,3,1}。
表2对e1(F1)列排序后的等效中间结果
若列中存在NULL值,则需在排序前先遍历列,将NULL值对应的序列通过类似冒泡排序的方法交换到排序时指定的NULL值位置(列的最前或最后)。
S15:按照新的位置序列,对等值区间列表R内的每个等值区间进行分割:首先创建一个新的等值区间列表(为空),然后对等值区间列表R内的每个等值区间,以其左端点作为当前区间起始值start,遍历区间内的位置序列,一旦发现序列的第j行对应的ei值不等于当前起始值(即等值区间内出现了新的值),则更新当前区间起始值为j;若此时j>start+1(即区间包含多个元素),则向TR添加一个新的等值区间[start,j)。最后,如果等值区间列表内不存在当前起始值start开始的等值区间,且N>start+1,则向TR添加新的等值区间[start,N)。当所有旧的区间处理完成后,用TR的内容替换等值区间列表R的内容,并清空TR。若分割后的等值区间列表R内容为空,说明排序已经完成,跳转到步骤S17。
以表1数据和约定1为例,对e1(即F1)列排序后,使用位置序列{0,4,2,3,1}对等值区间列表R内的等值区间[0,5)进行分割,分割后R内包含区间[0,2)和[2,4),分别表示位置序列的值{0,4}和{2,3},这两组值分别对应e1列的两组值{1,1}和{2,2}。之后使用e2排序时,只在位置序列的[0,2)和[2,4)两个区间内分别进行排序。同理,对e2(即F2)列排序后,分割后R为空,说明所有行都已确定顺序,排序已经完成,无需再对e3进行计算和排序。
S16:使用下一个关键字表达式(i值加1),并跳转到S12。
S17:对每一列,按照位置序列构造结果列。例如,对于col1结果列的第j行,取col1在位置序列第j个值处的值填入。至此对所有列的排序完成。
以表1数据和约定1为例,最终得到的位置序列数据为{4,0,2,3,1},根据位置序列构造的各结果列如表3所示。
表3排序后构造的各结果列数据
本实施例描述的排序方法中,每次排序只在一列内进行,与传统的以行为操作单位相比,局部化程度较高,对处理器缓存更为友好;并且可以利用列的数据类型,选择更优的特定排序算法;还可以利用上次排序得到的等值区间来裁剪下次排序的操作范围,从而减少排序的比较次数,提升性能。
实施例2:
本实施例公开了以一个或多个关键字,对若干列数据进行排序,并取前k条结果的方法。例如数据库系统中存在以下三列数据:col1、col2、col3,则以e1为首个关键字表达式、e2为第二个关键字表达式、e3为第三个关键字表达式,对上述三列数据进行排序,并取前k条结果(类似于SQL语句ORDER BY e1,e2,e3 LIMIT k)。
图5是实施例2的流程示意图,主要包括以下步骤:
S21:根据k值和N值的大小等因素,判断是否需要采用更优的排序方法。例如,如果k值较小且N值较大,则可以考虑采用性能更优的Top-N类的排序算法;或者可以考虑直接利用索引。
S22:若采用更优的排序方法,则直接使用选定的方法获取原数据列按照各关键字表达式排序的前k条结果。
S23:若k值较大或出于其他考虑未采用更优的排序方法,则仍使用类似实施例1的逐列排序流程,具体步骤如S31-S38所述。
实施例3:
本实施例详细描述实施例2中步骤S23的逐列排序流程。图6为实施例3的流程示意图,主要包括以下步骤:
S31:类似S11,构建位置序列和等值区间列表R。
S32:类似S12,根据ei的数据类型及其他要求,为ei选择并设置最优的排序算法。
S33:如果需要,使用列数据求出ei列的值。
S34:类似S14,使用所选的排序算法,在等值区间列表R中每个等值区间内,通过位置序列对ei列进行排序,获得更新后的位置序列。如果完成对ei列排序后已经使用了所有关键字表达式,则直接跳转到步骤S38。
S35:类似S15,按照新的位置序列,对等值区间列表R内的每个等值区间进行分割。
S36:遍历R,从中去除起始值大于等于k的等值区间。若去除操作后的R为空,说明已经排出前k条结果,直接跳转到步骤S38。
以表1数据和约定1为例,假设k值为2,则对e1列进行排序后的R包含两组区间[0,2)和[2,4),由于区间[2,4)的左端点值2大于等于k,故从R中去除该区间,对后续表达式排序时可以仅在区间[0,2)内排序。对e2列进行排序后的R为空,说明已经排出前2条结果,此时无需再对e3列进行求值和排序,可直接得出结果。
S37:使用下一个关键字表达式(i值加1),并跳转到S32。
S38:按照位置序列的前k个值构造结果列。
以表1数据和约定1为例,假设k值为2,则最终按照位置序列的前2个值构造结果列,最终各结果列数据为表3的前2行数据。
本实施例描述仅需要排序的前k条结果的场景下的排序流程,除实施例1中描述的技术优点外,还可以根据所需数据量等因素选择普通的逐列排序或Top-N等特殊排序方法,并且在逐列排序时可根据等值区间和k值进一步裁切下次排序的操作范围,达到进一步提高排序性能的目的。
实施例4:
本实施例公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意一实施例公开的步骤。
实施例5:
本实施例公开了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一实施例公开的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种基于列存储格式的数据库排序方法,其特征在于:包括以下步骤:
步骤1:遍历排序列的数据构建一个位置序列数组,初始化等值区间列表中的初始等值区间:[0,N),其中,N表示列的高度;
步骤2:记当前排序过程中使用的关键字表达式,记为ei,根据ei的数据类型,确定排序算法;
步骤3:使用排序列的数据求出ei的值,构成ei列;
步骤4:按照步骤2确定的排序算法,对ei列进行排序,得到新的位置序列数组,并判断ei是否为最后一个关键字表达式,若是,则对每一列,按照新的位置序列数组构造结果列;若不是,则执行步骤5;
步骤5:按照新的位置序列数组,对等值区间列表进行分割,判断是否存在等值区间,若存在,则执行步骤6;若不存在,则对每一列,按照新的位置序列数组构造结果列;
步骤6:使用下一个关键字表达式,记为ei+1,根据ei+1的数据类型,确定排序算法,使用排序列的数据求出ei+1的值,构成ei+1列;按照确定的排序算法,根据ei+1列对等值区间内的位置序列进行排序,得到新的位置序列数组,并判断ei+1是否为最后一个关键字表达式,若是,则对每一列,按照新的位置序列数组构造结果列;若不是,则执行步骤5。
2.根据权利要求1所述的一种基于列存储格式的数据库排序方法,其特征在于:步骤4中,所述的按照步骤2确定的排序算法,对ei列进行排序,得到新的位置序列数组,具体包括:
排序算法中每次操作首先通过位置序列获取实际行号;
根据实际行号读取ei列数据进行比较;
比较完成后根据比较结果交换列数据对应的位置序列值,得到新的位置序列数组。
3.根据权利要求2所述的一种基于列存储格式的数据库排序方法,其特征在于:若列中存在NULL值,则需在排序前先遍历列,将NULL值对应的序列交换到排序时指定的NULL值位置。
4.根据权利要求1所述的一种基于列存储格式的数据库排序方法,其特征在于:步骤5中,所述的按照新的位置序列数组,对等值区间列表进行分割,具体操作包括:
创建一个临时等值区间列表,此时该临时等值区间列表为空;
对等值区间列表内的每个等值区间,以其左端点作为当前区间起始值start,遍历区间内的位置序列,一旦发现序列的第j行对应的ei值不等于当前区间起始值时,则更新当前区间起始值为j;若此时j>start+1,则向临时等值区间列表添加一个新的等值区间[start,j);
若等值区间列表内不存在当前区间起始值start开始的等值区间,且N>start+1,则向临时等值区间列表添加新的等值区间[start,N);
用临时等值区间列表的内容替换等值区间列表的内容,并清空临时等值区间列表。
5.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至4任意一项所述的一种基于列存储格式的数据库排序方法的步骤。
6.一种存储介质,其特征在于,所述存储介质存储有数据库排序程序,所述数据库排序程序被至少一个处理器执行时实现权利要求1至4任意一项所述的一种基于列存储格式的数据库排序方法的步骤。
CN202311411784.2A 2023-10-30 2023-10-30 基于列存储格式的数据库排序方法、计算机设备及存储介质 Pending CN117725054A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311411784.2A CN117725054A (zh) 2023-10-30 2023-10-30 基于列存储格式的数据库排序方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311411784.2A CN117725054A (zh) 2023-10-30 2023-10-30 基于列存储格式的数据库排序方法、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117725054A true CN117725054A (zh) 2024-03-19

Family

ID=90198610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311411784.2A Pending CN117725054A (zh) 2023-10-30 2023-10-30 基于列存储格式的数据库排序方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117725054A (zh)

Similar Documents

Publication Publication Date Title
US6725223B2 (en) Storage format for encoded vector indexes
CN110083601B (zh) 面向键值存储系统的索引树构建方法及系统
US7558802B2 (en) Information retrieving system
US7831626B1 (en) Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
CN105975587A (zh) 一种高性能的内存数据库索引组织与访问方法
EP2093681A2 (en) Method and system for implementing an enhanced database
CN109325032B (zh) 一种索引数据存储及检索方法、装置及存储介质
EA006562B1 (ru) Способ кодирования ключей в базе данных и база данных
WO2000003335A1 (en) Value-instance-connectivity computer-implemented database
JP2002501256A (ja) データベース装置
US8086641B1 (en) Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US6735600B1 (en) Editing protocol for flexible search engines
CN112085644B (zh) 多列数据排序方法、装置、可读存储介质和电子设备
CN108134739B (zh) 一种基于索引特里树的路由查找方法及装置
US6675171B2 (en) Memory based on a digital trie structure
US6745198B1 (en) Parallel spatial join index
US7653619B1 (en) Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height
US7725450B1 (en) Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
US7987205B1 (en) Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
CN114064979A (zh) 一种加速获取raid的存储数据的方法、计算机及存储介质
CN115718819A (zh) 一种索引构建方法、数据读取方法及索引构建装置
CN114691041A (zh) 键值存储系统、垃圾回收方法
CN114416646A (zh) 一种层级存储系统的数据处理方法及装置
US7953721B1 (en) Integrated search engine devices that support database key dumping and methods of operating same
CN117725054A (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