[go: up one dir, main page]

CN110222074A - 索引查找方法、查找装置、电子设备及存储介质 - Google Patents

索引查找方法、查找装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110222074A
CN110222074A CN201910515781.0A CN201910515781A CN110222074A CN 110222074 A CN110222074 A CN 110222074A CN 201910515781 A CN201910515781 A CN 201910515781A CN 110222074 A CN110222074 A CN 110222074A
Authority
CN
China
Prior art keywords
index
target
storage medium
target index
section
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
CN201910515781.0A
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201910515781.0A priority Critical patent/CN110222074A/zh
Publication of CN110222074A publication Critical patent/CN110222074A/zh
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2453Query optimisation

Landscapes

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

Abstract

本发明实施例提供了一种索引查找方法、查找装置、电子设备及存储介质,其中方法包括:获取目标索引标识;基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间;从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中;基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。本发明实施例能够缩短索引的查找时间。

Description

索引查找方法、查找装置、电子设备及存储介质
技术领域
本发明涉及数据存储技术领域,特别是涉及一种索引查找方法、查找装置、电子设备及存储介质。
背景技术
索引是对数据库表中一列或多列的值进行排序的一种结构,现有技术中通常使用索引技术来提高对数据库的访问速度。
具体来说,由于内存的读写性能要远大于磁盘的读写性能,现有技术中通常将索引文件存储在内存中,当接收到数据库访问请求时,先读取索引文件以定位数据在数据库的存储位置,进而根据存储位置访问数据库,从而大大提高了对数据库的访问速度。
发明人在实施本发明的过程中发现,当索引文件太大时,无法长期将索引文件存储在内存中,只能存储在磁盘上,这是由于如果将索引文件存储在内存中,则会消耗存储系统过多的内存资源,导致存储系统被拖慢。因此,在每次读取数据的时候,都需要将整个索引文件从磁盘中读取到内存中,然后再基于索引文件的读取结果查询数据库,待从数据库中获取到访问结果之后释放索引文件所占用的内存。这样,由于每次读取数据时,都需要先将整个索引文件读取到内存中,而索引文件本身较大,读取到内存的过程需要耗费较长时间,导致影响对数据库的访问速度的问题。
发明内容
本发明实施例的目的在于提供一种索引查找方法、查找装置、电子设备及存储介质,以缩短索引的查找时间。具体技术方案如下:
第一方面,本发明实施例提供了一种索引查找方法,包括:
获取目标索引标识,所述目标索引标识为待查找索引的索引标识;
基于预设查找算法将所述目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与所述目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息,得到目标索引信息,并将所述目标索引信息读取到第一存储介质中,所述第一存储介质的数据读写性能高于所述第二存储介质的数据读写性能;
基于预设的查找算法在所述目标索引信息中查找所述目标索引标识,得到所述待查找索引。
可选的,所述参考索引标识通过以下方法得到:
预先遍历存储在所述第二存储介质中的索引文件;
从所述索引文件中按照预定顺序间隔抽取多个索引标识,作为所述参考索引标识。
可选的,所述从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息的步骤,包括:
确定所述目标索引区间的序号;
基于所述目标索引区间的序号确定所述目标索引区间在所述索引文件中的起始偏移量;
确定所述目标索引区间中包含的索引的字节总量;
基于所述起始偏移量和所述目标索引区间中包含的索引的字节总量确定所述目标索引信息。
可选的,通过以下方法确定所述目标索引区间的序号:根据所述目标索引区间对应的参考索引标识在所述多个参考索引中的顺序,确定所述目标索引区间的序号。
可选的,基于第一预设表达式确定所述目标索引区间在所述索引文件中的起始偏移量O,所述第一预设表达式为:
O=N*Q*S
其中,N为所述目标索引区间的序号,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
可选的,基于第二预设表达式确定所述目标索引区间中包含的索引的字节总量TS,所述第二预设表达式为:
TS=Q*S
其中,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
可选的,所述预设的查找算法可以是以下方法中的任一种:二分法、二叉排序树法、哈希表法、分块查找法。
可选的,所述第二存储介质为磁盘,所述第一存储介质为内存。
第二方面,本发明实施例提供了一种索引查找装置,包括:
获取模块,用于获取目标索引标识,所述目标索引标识为待查找索引的索引标识;
确定模块,用于基于预设查找算法将所述目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与所述目标索引标识对应的目标索引区间;
读取模块,用于从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息,得到目标索引信息,并将所述目标索引信息读取到第一存储介质中,所述第一存储介质的数据读写性能高于所述第二存储介质的数据读写性能;
查找模块,用于基于预设的查找算法在所述目标索引信息中查找所述目标索引标识,得到所述待查找索引。
可选的,所述装置还包括:
遍历模块,用于预先遍历存储在所述第二存储介质中的索引文件;
抽取模块,用于从所述索引文件中按照预定顺序间隔抽取多个索引标识,作为所述参考索引标识。
可选的,所述确定模块,包括:
第一确定子模块,用于确定所述目标索引区间的序号;
第二确定子模块,用于基于所述目标索引区间的序号确定所述目标索引区间在所述索引文件中的起始偏移量;
第三确定子模块,用于确定所述目标索引区间中包含的索引的字节总量;
第四确定子模块,用于基于所述起始偏移量和所述目标索引区间中包含的索引的字节总量确定所述目标索引信息。
可选的,所述第一确定子模块,具体用于:
根据所述目标索引区间对应的参考索引标识在所述多个参考索引中的顺序,确定所述目标索引区间的序号。
可选的,基于第一预设表达式确定所述目标索引区间在所述索引文件中的起始偏移量O,所述第一预设表达式为:
O=N*Q*S
其中,N为所述目标索引区间的序号,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
可选的,基于第二预设表达式确定所述目标索引区间中包含的索引的字节总量TS,所述第二预设表达式为:
TS=Q*S
其中,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
可选的,所述预设的查找算法可以是以下方法中的任一种:二分法、二叉排序树法、哈希表法、分块查找法。
可选的,所述第二存储介质为磁盘,所述第一存储介质为内存。
第三方面,本发明实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第一方面提供的索引查找方法的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面提供的索引查找方法的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的索引查找方法的方法步骤。
第六方面,本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面提供的索引查找方法的方法步骤。
本发明实施例提供的一种索引查找方法、查找装置、电子设备及存储介质,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的索引查找方法的第一种流程示意图;
图2为本发明实施例中多条索引的存储示意图;
图3为本发明实施例提供的索引查找方法中,步骤S103的一种流程示意图;
图4为本发明实施例提供的索引查找方法的第二种流程示意图;
图5为本发明实施例提供的索引查找装置的第一种结构示意图;
图6为本发明实施例提供的索引查找装置的第二种结构示意图;
图7为本发明实施例提供的索引查找装置中,确定模块的一种结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的索引查找方法,通常还可以采用以下方案:
目前的应用场景下,由于在数据存储过程中产生的索引数量过多,导致索引不能全部放入内存,因此每次读取数据时,都需要先从磁盘中读取索引,再根据索引读取数据,但是,这种方法需要从磁盘中存储的索引文件中,按顺序遍历其中的索引,直到找到需要的读取的索引,由于最差的情况是需要遍历整个索引文件中的索引,因为需要花费大量的时间,因此对于查找性能要求高的应用场景并不适用。
有鉴如此,如图1所示,本发明实施例提供了一种索引查找方法,该方法可以包括以下步骤:
S101,获取目标索引标识。
可以理解,当索引被存储后可以生成索引的索引标识,该索引标识用于标识索引的存储顺序。在接收到对数据库中某条数据的查询请求之后,从查询请求中获取待查找数据所对应的索引的索引标识,即,目标索引标识。
S102,基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间。
本发明实施例中,可以预先在第一存储介质中存储多个参考索引标识,这些参考索引标识可以用于对保存于索引文件中的多条索引进行区间标识,以标识出多个索引区间。多个参考索引标识通过以下方法得到:遍历索引文件,从索引文件中按照预定顺序间隔抽取多个索引标识作为参考索引标识,多个参考索引标识可以采用数组的形式来进行存储。
下面首先对索引的存储过程进行说明:
一个数据被存储至磁盘后,便可以生成该数据对应的索引,用以在日后快速地通过所生成的索引查找该数据,那么,对于多条索引,可以按照预设的存储顺序保存至索引文件中,例如,按照索引生成时间的先后顺序存储各索引。
示例性地,本发明实施例中的多条索引可以按照如图2所示的形式进行存储,图2中,当索引被存储至索引文件中后,可以分别生成该索引的索引标识(用seq表示),索引编号(用id表示),索引对应数据的偏移(用off表示),索引对应数据的大小(用size表示)。
其中,上述索引标识与各索引的存储顺序对应,也即,上述索引标识可以标识各索引的存储顺序;上述索引编号用于表示一条索引的唯一识别号码,通常地,一条索引的索引编号与该索引的当前索引标识相同;上述偏移用于标明该索引对应的数据在磁盘中的偏移量,从而能够在磁盘上定位索引对应的数据;上述大小用于表示索引对应的数据在磁盘中所占用的存储空间的大小。
参考图2可知,各索引的索引标识并不一定总是连续的,例如,图2中各索引对应的索引标识的顺序为:0、2、3、4、6……,其中,0和2不连续,2到4连续,而4和6又不连续,这是由于当所存储数据被删除后,其对应的索引也将随之删除,因此可能出现索引不连续的情况,但是可以看到的是,多条索引整体的先后顺序并没有发生改变,即,上述索引标识仍然按照由小到大的顺序排列。
以下仍以图2为例对参考索引标识与索引文件的映射关系,以及参考索引标识的生成过程进行进一步说明:
遍历图2所示的索引文件,按照间隔16条索引数据的方式抽取索引标识0,28,36,并将其放入至预先定义的数组seq_array内,作为参考索引标识,从而建立参考索引标识跟索引文件的映射关系。具体地,参考索引标识0,28,36,将索引文件划分为3个索引区间:[0,28),[28,61),[61,∞),其中,[0,28)表示索引标识为0到28(不包含28)的区间,[28,61)表示索引标识为28到61(不包含61)的区间,[61,∞)表示索引标识为61(不包含61)以后的区间。其中[61,∞)区间内也包含16条索引对应的索引标识。
本发明实施例可以将目标索引标识和多个参考索引标识进行比较,以确定与目标索引标识对应与索引文件的索引区间,即目标索引区间。
示例性地,如果目标索引标识为39,则可以将39与上述0,28,61比较,以确定目标索引标识39对应的目标索引区间。例如,采用二分法来比较,其比较过程可以为:先将39与28比较,39比28大,然后将39跟61比较,39比61小,表明39在28和61这个区间,表示为[28,61),该区间即为目标索引区间。
作为本发明实施例一种可选的实施方式,可以采用其他的查找算法进行查找,例如,二叉排序树法,哈希表法,分块查找法等。
作为本发明实施例一种可选的实施方式,上述第一存储介质具体可以为内存,内存具有读写性能高、延迟短的特点,而上述参考索引标识恰恰需要内存的读写特点,即,需要快速地对参考索引标识进行读取,因此,将参考索引标识保存至内存,能够利用内存的性能优势快速确定与目标索引标识对应的目标索引区间,从而提高查找效率。
作为本发明实施例一种可选的实施方式,对于多条按顺序存储的索引,可以基于参考索引标识,预先对索引文件中保存的索引进行区间划分,即,把这些索引划分至不同的索引区间中,从而直接在预先划分的索引区间中快速确定与目标索引标识对应的目标索引区间。
参考图1,S103,从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中。
在确定目标索引区间后,可以从存储在第二存储介质中的索引文件中,确定与该目标索引区域对应的索引信息,即得到目标索引信息。示例性地,参考图2,当目标索引区间为[28,61)时,则可以在索引文件中确定与目标索引区间[28,61)对应的索引信息,然后,将所确定的索引信息读取到第一存储介质中,其中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能。第二存储介质,例如可以为:磁盘。
作为本发明实施例一种可选的实施方式,如图3所示,上述步骤S103具体可以为:
S1031,确定目标索引区间的序号。
S1032,基于目标索引区间的序号确定目标索引区间在索引文件中的起始偏移量。
S1033,确定目标索引区间中包含的索引的字节总量。
S1034,基于起始偏移量和目标索引区间中包含的索引的字节总量确定目标索引信息。
可选的,可以基于第一预设表达式确定目标索引区间在索引文件中的起始偏移量O,第一预设表达式为:
O=N*Q*S
其中,N为目标索引区间的序号,Q为目标索引区间中包含的索引的数量,S为每条索引的字节数量。本领域技术人员可以根据实际的业务需求,灵活设定目标索引区间中包含的索引的数量,其具体数值本发明实施例不做限定。
下面对步骤S1031~S1034进行说明:
参考图2,由3个参考索引标识0,28,36确定的3个索引区间可以为:[0,28),[28,61),[61,∞),当目标索引区间为[28,61)时,则该目标索引区间为第二个区间,序号N为1(从0开始计数),则在索引文件中的起始偏移量为:N*16*24,其中16为索引区间中索引的个数,24为索引在索引文件中的字节数量(通常是预设的固定大小,单位为比特)。根据上述第一预设表达式:N*16*24=1*16*24=384,可以确定目标索引区间在索引文件中的起始偏移量为384。
可选的,可以基于第二预设表达式确定目标索引区间中包含的索引的字节总量TS,第二预设表达式为:
TS=Q*S
其中,Q为目标索引区间中包含的索引的数量,S为每条索引的字节数量。
示例性地,目标索引区间中包含的索引的数量为16,每条索引的字节数量为24,则可以确定目标索引区间中包含的索引的字节总量TS为:16*24=384。
作为本发明实施例一种可选的实施方式,可以根据目标索引区间对应的参考索引标识在多个参考索引中的顺序,确定目标索引区间的序号。
示例性地,目标索引区间对应的参考索引标识为39,39属于[28,61)这个目标索引区间,其中,28是数组【0、28、61】中的第2个数,由于数组是从0开始计算的,因此需要将2减去1,得到1,即,得到39属于第1个区间,也即,39所在的目标索引区间的序号为1。
参考图1,S104,基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
确定目标索引信息后,由于目标索引信息中包含待查找索引及其索引标识,因此可以利用预设的查找算法,在目标索引信息中查找目标索引标识,从而得到待查找索引。
作为本发明实施例一种可选的实施方式,为了提高查找速度,本发明实施例可以采用不同的预设查找算法进行查找,例如,二分法,二叉排序树法,哈希表法,分块查找法等。
当采用二分法查找时,示例性地,如果查找到的目标索引标识为39,可以将目标索引标识39与目标索引区间[28,61)中位于中间的索引标识46进行比较,39小于46,表明该索引在[28,46]这一子区间内,然后,再利用二分查找算法,将目标索引标识39与子区间[28,46]中位于中间的索引标识进行比较,位于中间的索引标识恰好也是39,则查找到索引,进而可以读取该索引的记录:seq:39,id:39,off:10210,size:40687。
作为本发明实施例一种可选的实施方式,如图4所示,参考索引标识可以通过以下方法得到:
S201,预先遍历存储在第二存储介质中的索引文件。
该步骤可以位于步骤S101之前。本发明实施例可以通过预先遍历存储在第二存储介质中的索引文件,例如,遍历存储在磁盘中的索引文件,参考图2,可以生成各索引的索引标识。该索引标识已在前述实施例中阐述,此处不再赘述。
S202,从索引文件中按照预定顺序间隔抽取多个索引标识,作为参考索引标识。
可以理解,对于所抽取的多个参考索引标识,它们具体可以为存储顺序号或者索引编号,因此可以先通过参考索引标识,确定出各索引区间所对应的索引标识的范围,进而确定待查找索引标识所属的索引标识范围,并且,由于索引标识与索引是一一对应的,因此在确定索引标识所属的索引标识范围后,可以容易地确定目标索引标识对应的目标索引区间。正是由于上述参考标识能够用于确定目标索引标识对应的目标索引区间,因此称为参考标识。通过生成参考索引标识,能够缩短确定目标索引标识对应的目标索引区间的时间。
得到多个参考标识后,可以将多个参考标识保存在第一存储介质中,例如,存储在内存中,以供后续使用。
本发明实施例提供的一种索引查找方法,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。
如图5所示,本发明实施例提供了一种索引查找装置,与图1所示实施例对应,该装置包括:
获取模块501,用于获取目标索引标识,目标索引标识为待查找索引的索引标识。
确定模块502,用于基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间。
读取模块503,用于从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能。
查找模块504,用于基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
其中,如图6所示,在图5所示装置结构的基础上,本发明实施例的索引查找装置还可以包括:
遍历模块601,用于预先遍历存储在第二存储介质中的索引文件。
抽取模块602,用于从索引文件中按照预定顺序间隔抽取多个索引标识,作为参考索引标识。
其中,如图7所示,确定模块502,包括:
第一确定子模块5021,用于确定目标索引区间的序号。
第二确定子模块5022,用于基于目标索引区间的序号确定目标索引区间在索引文件中的起始偏移量。
第三确定子模块5023,用于确定目标索引区间中包含的索引的字节总量。
第四确定子模块5024,用于基于起始偏移量和目标索引区间中包含的索引的字节总量确定目标索引信息。
其中,第一确定子模块,具体用于:
根据目标索引区间对应的参考索引标识在多个参考索引中的顺序,确定目标索引区间的序号。
其中,基于第一预设表达式确定目标索引区间在索引文件中的起始偏移量O,第一预设表达式为:
O=N*Q*S
式中,N为目标索引区间的序号,Q为目标索引区间中包含的索引的数量,S为每条索引的字节数量。
其中,基于第二预设表达式确定目标索引区间中包含的索引的字节总量TS,第二预设表达式为:
TS=Q*S
其中,Q为目标索引区间中包含的索引的数量,S为每条索引的字节数量。
其中,预设的查找算法可以是以下方法中的任一种:二分法、二叉排序树法、哈希表法、分块查找法。
其中,第二存储介质为磁盘,第一存储介质为内存。
本发明实施例提供的一种索引查找装置,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
本发明实施例还提供了一种电子设备,具体可以为服务器,如图8所示,该设备800包括处理器801和机器可读存储介质802,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令实现以下步骤:
获取目标索引标识,目标索引标识为待查找索引的索引标识;
基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能;
基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
本发明实施例提供的一种电子设备,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
上述机器可读存储介质可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,用以执行如下步骤:
获取目标索引标识,目标索引标识为待查找索引的索引标识;
基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能;
基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
本发明实施例提供的计算机可读存储介质,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以下步骤:
获取目标索引标识,目标索引标识为待查找索引的索引标识;
基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能;
基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
本发明实施例提供的包含指令的计算机程序产品,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行以下步骤:
获取目标索引标识,目标索引标识为待查找索引的索引标识;
基于预设查找算法将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,得到目标索引信息,并将目标索引信息读取到第一存储介质中,第一存储介质的数据读写性能高于第二存储介质的数据读写性能;
基于预设的查找算法在目标索引信息中查找目标索引标识,得到待查找索引。
本发明实施例提供的包含指令的计算机程序,在获取目标索引标识后,通过将目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与目标索引标识对应的目标索引区间,进而从存储在第二存储介质中的索引文件中确定与目标索引区间对应的索引信息,并将目标索引信息读取到第一存储介质中,与现有技术读取整个索引文件相比,本发明实施例读取到第一存储介质中的目标索引信息的索引数量大大减少,进而索引读取时间缩短,从而缩短索引的查找时间。
对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (18)

1.一种索引查找方法,其特征在于,所述方法包括:
获取目标索引标识,所述目标索引标识为待查找索引的索引标识;
基于预设查找算法将所述目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与所述目标索引标识对应的目标索引区间;
从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息,得到目标索引信息,并将所述目标索引信息读取到第一存储介质中,所述第一存储介质的数据读写性能高于所述第二存储介质的数据读写性能;
基于预设的查找算法在所述目标索引信息中查找所述目标索引标识,得到所述待查找索引。
2.根据权利要求1所述的方法,其特征在于,所述参考索引标识通过以下方法得到:
预先遍历存储在所述第二存储介质中的索引文件;
从所述索引文件中按照预定顺序间隔抽取多个索引标识,作为所述参考索引标识。
3.根据权利要求1所述的方法,其特征在于,所述从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息的步骤,包括:
确定所述目标索引区间的序号;
基于所述目标索引区间的序号确定所述目标索引区间在所述索引文件中的起始偏移量;
确定所述目标索引区间中包含的索引的字节总量;
基于所述起始偏移量和所述目标索引区间中包含的索引的字节总量确定所述目标索引信息。
4.根据权利要求3所述的方法,其特征在于,通过以下方法确定所述目标索引区间的序号:根据所述目标索引区间对应的参考索引标识在所述多个参考索引中的顺序,确定所述目标索引区间的序号。
5.根据权利要求3所述的方法,其特征在于,基于第一预设表达式确定所述目标索引区间在所述索引文件中的起始偏移量O,所述第一预设表达式为:
O=N*Q*S
其中,N为所述目标索引区间的序号,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
6.根据权利要求3所述的方法,其特征在于,基于第二预设表达式确定所述目标索引区间中包含的索引的字节总量TS,所述第二预设表达式为:
TS=Q*S
其中,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述预设的查找算法可以是以下方法中的任一种:二分法、二叉排序树法、哈希表法、分块查找法。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述第二存储介质为磁盘,所述第一存储介质为内存。
9.一种索引查找装置,其特征在于,所述装置包括:
获取模块,用于获取目标索引标识,所述目标索引标识为待查找索引的索引标识;
确定模块,用于基于预设查找算法将所述目标索引标识和预先存储在第一存储介质中的多个参考索引标识进行比较,确定与所述目标索引标识对应的目标索引区间;
读取模块,用于从存储在第二存储介质中的索引文件中确定与所述目标索引区间对应的索引信息,得到目标索引信息,并将所述目标索引信息读取到第一存储介质中,所述第一存储介质的数据读写性能高于所述第二存储介质的数据读写性能;
查找模块,用于基于预设的查找算法在所述目标索引信息中查找所述目标索引标识,得到所述待查找索引。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
遍历模块,用于预先遍历存储在所述第二存储介质中的索引文件;
抽取模块,用于从所述索引文件中按照预定顺序间隔抽取多个索引标识,作为所述参考索引标识。
11.根据权利要求9所述的装置,其特征在于,所述确定模块,包括:
第一确定子模块,用于确定所述目标索引区间的序号;
第二确定子模块,用于基于所述目标索引区间的序号确定所述目标索引区间在所述索引文件中的起始偏移量;
第三确定子模块,用于确定所述目标索引区间中包含的索引的字节总量;
第四确定子模块,用于基于所述起始偏移量和所述目标索引区间中包含的索引的字节总量确定所述目标索引信息。
12.根据权利要求11所述的装置,其特征在于,所述第一确定子模块,具体用于:
根据所述目标索引区间对应的参考索引标识在所述多个参考索引中的顺序,确定所述目标索引区间的序号。
13.根据权利要求11所述的装置,其特征在于,基于第一预设表达式确定所述目标索引区间在所述索引文件中的起始偏移量O,所述第一预设表达式为:
O=N*Q*S
其中,N为所述目标索引区间的序号,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
14.根据权利要求11所述的装置,其特征在于,基于第二预设表达式确定所述目标索引区间中包含的索引的字节总量TS,所述第二预设表达式为:
TS=Q*S
其中,Q为所述目标索引区间中包含的索引的数量,S为每条索引的字节数量。
15.根据权利要求9-14任一项所述的装置,其特征在于,所述预设的查找算法可以是以下方法中的任一种:二分法、二叉排序树法、哈希表法、分块查找法。
16.根据权利要求9-14任一项所述的装置,其特征在于,所述第二存储介质为磁盘,所述第一存储介质为内存。
17.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-8任一项所述的索引查找方法的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的索引查找方法的方法步骤。
CN201910515781.0A 2019-06-14 2019-06-14 索引查找方法、查找装置、电子设备及存储介质 Pending CN110222074A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910515781.0A CN110222074A (zh) 2019-06-14 2019-06-14 索引查找方法、查找装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910515781.0A CN110222074A (zh) 2019-06-14 2019-06-14 索引查找方法、查找装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN110222074A true CN110222074A (zh) 2019-09-10

Family

ID=67817375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910515781.0A Pending CN110222074A (zh) 2019-06-14 2019-06-14 索引查找方法、查找装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110222074A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765321A (zh) * 2019-10-28 2020-02-07 北京明略软件系统有限公司 一种数据存储路径的生成方法、生成装置及可读存储介质
CN111459883A (zh) * 2020-03-31 2020-07-28 潍柴动力股份有限公司 数据的处理方法及装置
CN113190507A (zh) * 2021-05-14 2021-07-30 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN113961477A (zh) * 2020-07-20 2022-01-21 科尔奇普投资公司 二进制搜寻的方法和系统
CN114661666A (zh) * 2022-03-03 2022-06-24 北京城市网邻信息技术有限公司 数据搜索方法、装置、设备及存储介质
CN114978646A (zh) * 2022-05-13 2022-08-30 京东科技控股股份有限公司 一种访问权限确定方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407250A (zh) * 2015-07-28 2017-02-15 阿里巴巴集团控股有限公司 信息查询方法、装置、系统、服务器和客户端
US20170270150A1 (en) * 2015-05-14 2017-09-21 Walleye Software, LLC Dynamic table index mapping
CN107391769A (zh) * 2017-09-12 2017-11-24 北京优网助帮信息技术有限公司 一种索引查询方法及装置
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170270150A1 (en) * 2015-05-14 2017-09-21 Walleye Software, LLC Dynamic table index mapping
CN106407250A (zh) * 2015-07-28 2017-02-15 阿里巴巴集团控股有限公司 信息查询方法、装置、系统、服务器和客户端
CN107391769A (zh) * 2017-09-12 2017-11-24 北京优网助帮信息技术有限公司 一种索引查询方法及装置
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765321A (zh) * 2019-10-28 2020-02-07 北京明略软件系统有限公司 一种数据存储路径的生成方法、生成装置及可读存储介质
CN111459883A (zh) * 2020-03-31 2020-07-28 潍柴动力股份有限公司 数据的处理方法及装置
CN111459883B (zh) * 2020-03-31 2023-08-18 潍柴动力股份有限公司 数据的处理方法及装置
CN113961477A (zh) * 2020-07-20 2022-01-21 科尔奇普投资公司 二进制搜寻的方法和系统
CN113190507A (zh) * 2021-05-14 2021-07-30 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN113190507B (zh) * 2021-05-14 2022-06-03 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN114661666A (zh) * 2022-03-03 2022-06-24 北京城市网邻信息技术有限公司 数据搜索方法、装置、设备及存储介质
CN114661666B (zh) * 2022-03-03 2023-01-24 北京城市网邻信息技术有限公司 数据搜索方法、装置、设备及存储介质
CN114978646A (zh) * 2022-05-13 2022-08-30 京东科技控股股份有限公司 一种访问权限确定方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN110222074A (zh) 索引查找方法、查找装置、电子设备及存储介质
WO2018064962A1 (zh) 数据存储方法、电子设备和计算机非易失性存储介质
CN110909266B (zh) 深度分页的方法、装置及服务器
US8977623B2 (en) Method and system for search engine indexing and searching using the index
US20150293958A1 (en) Scalable data structures
CN108932236A (zh) 一种文件管理方法、过期文件删除方法及装置
WO2018036549A1 (zh) 分布式数据库查询方法、装置及管理系统
CN102332030A (zh) 用于分布式键-值存储系统的数据存储、管理和查询方法及系统
CN110532347A (zh) 一种日志数据处理方法、装置、设备和存储介质
CN106055621A (zh) 一种日志检索方法及装置
CN106970958B (zh) 一种流文件的查询与存储方法和装置
CN112148701A (zh) 一种文件检索的方法及设备
CN102236706B (zh) 一种海量中文文件名快速模糊拼音查询方法
US20170046447A1 (en) Information Category Obtaining Method and Apparatus
US9213759B2 (en) System, apparatus, and method for executing a query including boolean and conditional expressions
CN109992708B (zh) 一种元数据查询的方法、装置、设备以及存储介质
CN114416733A (zh) 数据检索的处理方法、装置、电子设备及存储介质
CN106407322A (zh) 基于安卓系统的快速搜索文件方法
CN103220355B (zh) 内容分发网络中的多用户配置方法
CN102622354A (zh) 一种基于特征向量的聚合数据快速查找方法
CN114490737B (zh) 一种提高数据库深度分页查询效率的方法与终端
CN105574539B (zh) 一种dns日志分析方法及装置
CN112131215B (zh) 自底向上的数据库信息获取方法及装置
CN113742344A (zh) 电力系统数据的索引方法及装置
CN107092607A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190910