CN108255958A - 数据查询方法、装置和存储介质 - Google Patents
数据查询方法、装置和存储介质 Download PDFInfo
- Publication number
- CN108255958A CN108255958A CN201711395378.6A CN201711395378A CN108255958A CN 108255958 A CN108255958 A CN 108255958A CN 201711395378 A CN201711395378 A CN 201711395378A CN 108255958 A CN108255958 A CN 108255958A
- Authority
- CN
- China
- Prior art keywords
- index
- ident value
- data
- storage address
- ident
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
Abstract
本发明提供一种数据查询方法、装置和存储介质,该方法包括:接收数据查询指令,数据查询指令中包括待查询数据的标识值;在第一索引中查找标识值所在的标识值区间以及标识值区间在第二索引中的存储地址;其中,第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址;第一索引存储在内存中;根据标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址;第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,数据文件中包括每个标识值对应的数据;第二索引和数据文件存储在磁盘中;从标识值对应的数据在数据文件中的存储地址查询待查询数据。本发明能够提高磁盘的利用率。
Description
技术领域
本发明涉及数据处理技术,尤其涉及一种数据查询方法、装置和存储介质。
背景技术
随着互联网的蓬勃发展,在移动终端、电脑或MP3等数据存储设备上均存储有大量数据。在对这些数据进行数据分析的过程中,常常要使用到数据查询技术。
现有技术中,通常是利用可读可写的key-value存储引擎来提供数据查询服务。其中,一种典型的可读可写的key-value存储引擎为树形索引。树形索引中,通常为了控制访问磁盘的次数,会将key值存储在内存中,将value值存储在磁盘中,这样,只需要访问一次磁盘即可查询到想要查询的value值。
然而,现有技术中,当value值很小时,value值在磁盘中将占用很小的存储空间,但是key值将会占用内存中的很大一部分空间,从而导致内存占用空间大,而磁盘的利用率不高。
发明内容
为解决现有技术中存在的问题,本发明提供一种数据查询方法、装置和存储介质,以降低索引占用的内存,并提高磁盘的利用率。
第一方面,本发明实施例提供一种数据查询方法,包括:
接收数据查询指令,所述数据查询指令中包括待查询数据的标识值;
在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址;其中,所述第一索引中对应多个标识值区间以及每个所述标识值区间在所述第二索引中的存储地址;所述第一索引存储在内存中;
根据所述标识值区间在所述第二索引中的存储地址,查找所述标识值对应的数据在数据文件中的存储地址;所述第二索引中包括各所述标识值区间内的每个标识值对应的数据在所述数据文件中的存储地址,所述数据文件中包括每个所述标识值对应的数据;所述第二索引和所述数据文件存储在磁盘中;
从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据。
在本方案中,由于将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样不仅可以减小标识值占用内存的空间,提高磁盘的利用率,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。
可选地,所述第二索引对应多个数据块,且每个所述数据块用于存储一个所述标识值区间内的所有标识值对应的数据在所述数据文件中的存储地址信息。
在本方案中,通过将第二索引组织成多个数据块,且每个数据块用于存储一个标识值区间内的所有标识值对应的数据在数据文件中的存储地址信息,因此在第二索引中进行数据查找时,将会在数据块内进行查找,这样可以利用中央处理器(Central ProcessingUnit;CPU)的多级缓存,由此可以提高数据的查询速率。
可选地,所述第一索引中包括:每个所述标识值区间的起始标识值在所述第二索引中的存储地址。
可选地,每个所述标识值对应的数据在所述数据文件中的存储地址中还包括所述标识值对应的数据的长度信息。
可选地,所述从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据,包括:
从所述标识值对应的数据在所述数据文件中的存储地址中查询待查询数据的长度信息;
根据所述长度信息从所述标识值对应的数据在所述数据文件中的存储地址中查询所述待查询数据。
在上述方案中,根据待查询数据的长度信息,从标识值对应的数据在数据文件中的存储地址中查询待查询数据,可以提高待查询数据读取的速率。
可选地,所述第一索引包括一级索引或多级索引;
若包括多级索引,则每级索引包括至少一个标识值区间以及各所述标识值区间在相邻的下一级索引中的存储地址,所述多级索引中的最后一级索引的下一级索引为所述第二索引,相邻级索引之间的标识值区间范围依次缩小。
可选地,上一级索引中的每个标识值区间对应相邻下一级索引中的至少2个连续的标识值区间。
可选地,所述在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址,包括:
若所述第一索引包括多级索引,则从所述多级索引中的第一级索引开始,依次查找所述标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在所述第二索引中的存储地址。
在上述各方案中,由于采用多级索引存储标识值,使得索引在内存中不存在空闲内存碎片,从而减少索引占用的内存量。
可选地,每个所述标识值区间内的标识值顺序且连续排列;所述第一索引和所述第二索引中的各所述标识值区间的标识值顺序且连续排列。
可选地,所述查找所述标识值在该级索引中所在的标识值区间,包括:
采用二分法查找标识值在该级索引中所在的标识值区间。
在上述方案中,由于每个标识值区间内的标识值顺序且连续排列;第一索引和第二索引中的各标识值区间的标识值顺序且连续排列,这样,可以减少内存和磁盘中空闲的碎片,提高了内存和磁盘的利用率。
第二方面,本发明实施例提供一种数据查询装置,包括:
接收模块,用于接收数据查询指令,所述数据查询指令中包括待查询数据的标识值;
查找模块,用于在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址;其中,所述第一索引中对应多个标识值区间以及每个所述标识值区间在所述第二索引中的存储地址;所述第一索引存储在内存中;
所述查找模块,还用于根据所述标识值区间在所述第二索引中的存储地址,查找所述标识值对应的数据在数据文件中的存储地址;所述第二索引中包括各所述标识值区间内的每个标识值对应的数据在所述数据文件中的存储地址,所述数据文件中包括每个所述标识值对应的数据;所述第二索引和所述数据文件存储在磁盘中;
查询模块,用于从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据。
可选地,所述第二索引对应多个数据块,且每个所述数据块用于存储一个所述标识值区间内的所有标识值对应的数据在所述数据文件中的存储地址信息。
可选地,所述第一索引中包括:每个所述标识值区间的起始标识值在所述第二索引中的存储地址。
可选地,每个所述标识值对应的数据在所述数据文件中的存储地址中还包括所述标识值对应的数据的长度信息。
可选地,所述查询模块,具体用于:
从所述标识值对应的数据在所述数据文件中的存储地址中查询待查询数据的长度信息;
根据所述长度信息从所述标识值对应的数据在所述数据文件中的存储地址中查询所述待查询数据。
可选地,所述第一索引包括一级索引或多级索引;
若包括多级索引,则每级索引包括至少一个标识值区间以及各所述标识值区间在相邻的下一级索引中的存储地址,所述多级索引中的最后一级索引的下一级索引为所述第二索引,相邻级索引之间的标识值区间范围依次缩小。
可选地,上一级索引中的每个标识值区间对应相邻下一级索引中的至少2个连续的标识值区间。
可选地,所述查找模块,具体用于:
若所述第一索引包括多级索引,则从所述多级索引中的第一级索引开始,依次查找所述标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在所述第二索引中的存储地址。
可选地,每个所述标识值区间内的标识值顺序且连续排列;所述第一索引和所述第二索引中的各所述标识值区间的标识值顺序且连续排列。
可选地,所述查找模块,还用于:
采用二分法查找标识值在该级索引中所在的标识值区间。
第三方面,本发明实施例提供一种服务器,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
本发明提供的数据查询方法、装置和存储介质,通过接收数据查询指令,该数据查询指令中包括待查询数据的标识值,并在第一索引中查找该标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址;其中,该第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址,且第一索引存储在内存中;然后根据该标识值区间在第二索引中的存储地址,查找该标识值对应的数据在数据文件中的存储地址,该第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据,该第二索引和数据文件存储在磁盘中;最后从标识值对应的数据在数据文件中的存储地址查询待查询数据。由于将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样不仅可以减小标识值占用内存的空间,提高磁盘的利用率,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为应用本发明实施例提供的数据查询方法的架构示意图;
图2A为终端设备中查询界面的示意图;
图2B为终端设备中查询结果的显示示意图;
图3为本发明实施例提供的数据查询方法实施例一的信令流程图;
图4为第一索引、第二索引和数据文件中数据的存储格式示意图;
图5为本发明实施例提供的数据查询方法实施例二的信令流程图;
图6为本发明实施例提供的数据查询方法实施例三的流程示意图;
图7为本发明实施例提供的数据查询装置实施例一的结构示意图;
图8A示出了本发明查询服务器的一种可能的结构示意图;
图8B示出了本发明查询服务器的另一种可能的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为应用本发明实施例提供的数据查询方法的架构示意图,如图1所示,该系统架构中可以包括终端设备101、102或103、查询服务器104和数据库服务器105、106或107。
其中,终端设备101、102或103可以为支持信息通信的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等。
查询服务器104可以是提供各种查询服务的服务器,例如对用户通过终端设备101、102或103发送的数据查询指令进行分析,并根据分析结果从数据库服务器105、106或107中的一个或多个中获取查询结果,并将查询结果通过终端设备101、102或103反馈给用户。
数据库服务器105、106或107可以根据接收到的数据库操作请求,对数据库进行查询、插入、修改或删除等操作。
需要进行说明的是,本发明实施例中所提供的数据查询方法可以由图1中所示的查询服务器104来执行。
另外,值得注意的是,上述图1中所示的终端设备、网络和服务器的数量和类型仅作为示意,在实际应用中,根据实现的需要,可以具有任意数量和类型的终端设备、网络和服务器。
在图1所示的架构示意图的基础上,本发明实施例提供的数据查询方法应用于在只读场景中如何从数据库中进行数据的查询,其中,只读场景为数据库中存储的数据是固定不变或者需要进行定时更新的场景。例如:本发明实施例提供的数据查询方法可以应用于在线字典或在线翻译等数据库中的数据为只读的场景中,以进行数据的查询。
下面以在线字典场景为例,详细说明如何进行数据的查询。
其中,在线字典对应的数据库服务器(如图1中所示的数据库服务器105、106或107)中存储有各拼音对应的汉字、笔画以及解释等,其中,各拼音即为标识值,如key,对应的汉字、笔画以及解释即为待查询数据,如value值,其中,将各拼音对应的汉字、笔画以及解释等存储在数据文件中,将各汉字的拼音存储在第二索引中,将拼音中的声母或者韵母等存储在第一索引中。当然,还可以按照其他的规则将标识值以及待查询数据进行存储,只要将标识值以及待查询数据存储为树形结构即可。
图2A为终端设备中查询界面的示意图,如图2A所示,当用户通过终端设备在查询界面中查询“guo”,则终端设备将会向查询服务器(如图1中的查询服务器104)发送数据查询指令,该数据查询指令中将包括标识值“guo”,查询服务器通过在第一索引中查找标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址,如确定出标识值“guo”在第二索引中的存储地址。
然后,查询服务器将根据标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址,如根据“guo”在第二索引中的存储地址,查询到“guo”对应的汉字、笔画以及解释在数据文件中的存储地址。
从标识值对应的数据在数据文件中的存储地址查询待查询数据,如查询服务器从“guo”对应的汉字、笔画以及解释在数据文件中的存储地址中,查询到汉字“国”、以及“国”的笔画以及相关解释。
图2B为终端设备中查询结果的显示示意图,如图2B所示,查询服务器在查询到待查询数据之后,会将查询到的汉字“国”、以及“国”的笔画以及相关解释发送给终端设备,终端设备则将查询结果显示在显示界面上。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
在图1所示的架构示意图的基础上,图3为本发明实施例提供的数据查询方法实施例一的信令流程图。本发明实施例提供了一种数据查询方法,该方法可以由任意执行数据查询方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在查询服务器104中。如图3所示,本实施例的方法可以包括:
步骤301、接收数据查询指令,该数据查询指令中包括待查询数据的标识值。
在本实施例中,查询服务器可以接收用户通过终端设备触发的数据查询指令,该数据查询指令中包括待查询数据的标识值。
在一种可能的实现方式中,待查询数据可以为value值,标识值可以为key键值。
步骤302、在第一索引中查找标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址。
其中,该第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址;该第一索引存储在内存中。
在本实施例中,第一索引中存储有多个标识值,多个标识值分别对应多个标识值区间,另外,第一索引中还存储有每个标识值区间内的key值在第二索引中的存储地址。
在本实施例中的一种可选的实施方式中,第一索引中包括每个标识值区间的起始标识值在第二索引中的存储地址。
举例来说,若标识值为key,且第一索引中存储有key1、key40和key100,则key1将对应标识值区间key1至key39,key40将对应标识值区间key40至key99,key100将对应标识值区间key100至key n等,其中,key n为最大的key值。另外,需要进行说明的是,key并不是连续存储的,即可能会存在某个key值不存在的情况,如key1后面存储的是key3。
另外,第一索引中还存储有上述各标识值区间内的起始key值在第二索引中的存储地址,如在第一索引中存储有key1、key40和key100在第二索引中的存储地址。
查询服务器在接收到待查询数据的标识值之后,将在第一索引中查找该标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址。
例如:若待查询数据的标识值为key50,则查询服务器将在第一索引中查询key50所在的标识值区间,如可以查找到该区间为key41至key99,在查找到标识值区间后,将可以获得该标识值区间在第二索引中的存储地址。
另外,将存储有多个标识值以及多个存储地址的第一索引文件存储在内存中,这样,可以提高数据查询的速度。
步骤303、根据该标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址。
其中,该第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据;第二索引和数据文件存储在磁盘中。
在本实施例中,第二索引包括第一索引中对应的各标识值区间内的每个标识值,以及各标识值对应的数据在数据文件中的存储地址。例如:若第一索引中对应的标识值区间为key1至key39、key40至key99和key100至key n,则第二索引中将包括上述三个标识值区间内的每个标识值以及各标识值对应的数据在数据文件中的存储地址,如包括key1、key3、key4…key39,key40、key45…key99,key100、key103…key140,还包括有上述各标识值对应的数据在数据文件中的存储地址。
查询服务器在查找到标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址之后,将根据该标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址。
需要进行说明的是,本发明实施例中,将标识值存储在第一索引和第二索引中,并将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样,不仅可以减小标识值占用内存的空间,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。
另外,本领域技术人员可以理解,也可以将第一索引和第二索引均存储在内存中,将数据文件存储在磁盘中,这样,查询服务器将只访问一次磁盘,由此可以大大提高数据的查询效率。
可选地,第二索引对应多个数据块,且每个数据块用于存储一个标识值区间内的所有标识值对应的数据在数据文件中的存储地址信息。
具体地,图4为第一索引、第二索引和数据文件中数据的存储格式示意图,如图4所示,第二索引中包括有多个数据块,每个数据块中均存储有第一索引中的各标识值区间内的所有标识值对应的数据在数据文件中的存储地址信息。在一种可能的实现方式中,各数据块的大小可以为4K,如第一个4K的数据块中存储有key1对应的数据在数据文件中的存储地址信息offset1、key2对应的数据在数据文件中的存储地址信息offset2……,第二个4K的数据块中存储有key n对应的数据在数据文件中的存储地址信息offset n、key n+1对应的数据在数据文件中的存储地址信息offset n+1等等。
另外,存储地址信息offset例如可以为标识值对应的数据在数据文件中相对数据存储区域首地址的偏移量。
在本实施例中,通过将第二索引组织成多个数据块,且每个数据块用于存储一个标识值区间内的所有标识值对应的数据在数据文件中的存储地址信息,因此在第二索引中进行数据查找时,将会在数据块内进行查找,这样可以利用CPU的多级缓存,由此可以提高数据的查询速率。
步骤304、从标识值对应的数据在数据文件中的存储地址查询待查询数据。
步骤305、向终端设备返回查询结果。
在本实施例中,查询服务器在查找到标识值对应的数据在数据文件中的存储地址之后,将根据该存储地址查询待查询数据。若查找到该待查询数据,则会将查找到的待查询数据返回给终端设备,若未查找到该待查询数据,则向终端设备返回该待查询数据不存在。
在本实施例中,利用mmap返回数据指针,在从数据文件中进行数据读取时,将最多只访问一次磁盘,中间不存在内存拷贝的过程,从而可以提高数据读取的速率。
本发明实施例提供的数据查询方法,通过接收数据查询指令,该数据查询指令中包括待查询数据的标识值,并在第一索引中查找该标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址;其中,该第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址,且第一索引存储在内存中;然后根据该标识值区间在第二索引中的存储地址,查找该标识值对应的数据在数据文件中的存储地址,该第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据,该第二索引和数据文件存储在磁盘中;最后从标识值对应的数据在数据文件中的存储地址查询待查询数据。由于将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样不仅可以减小标识值占用内存的空间,提高磁盘的利用率,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。
图5为本发明实施例提供的数据查询方法实施例二的信令流程图。本实施例在图3所示实施例的基础上,对每个标识值对应的数据在数据文件中的存储地址中还包括标识值对应的数据的长度信息时,将如何从标识值对应的数据在数据文件中的存储地址查询所述待查询数据的实施例,进行详细介绍。如图5所示,本实施例的方法可以包括:
步骤501、接收数据查询指令,该数据查询指令中包括待查询数据的标识值。
步骤502、在第一索引中查找标识值所在的标识值区间以及标识值区间在第二索引中的存储地址。
其中,第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址;该第一索引存储在内存中。
步骤503、根据标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址。
其中,第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据;第二索引和数据文件存储在磁盘中。
步骤501-步骤503与步骤301-步骤303类似,此处不再赘述。
步骤504、从标识值对应的数据在数据文件中的存储地址中查询待查询数据的长度信息。
在本实施例中,继续参照图4所示,数据文件中存储有标识值对应的数据的长度信息value_len和标识值对应的数据value,且各数据和该数据的长度信息连续存储。例如:数据文件中按照value_len和value这种形式,顺序保存有所有的value的长度信息以及value。这样的存储方式,使得数据文件紧密排列,可以达到接近1的数据膨胀率,从而可以提高磁盘的利用率。
需要说明的是,若数据文件中按照上述的方式存储数据时,第二索引中将包括各标识值区间内的每个标识值,以及各标识值对应的数据的长度信息在数据文件中的存储地址,在一种可能的实现方式中,第二索引中可以存储有各标识值对应的数据的长度信息在数据文件中相对数据存储区域首地址的偏移量。
查询服务器在根据标识值区间在第二索引中的存储地址,查找到标识值对应的数据在数据文件中的存储地址之后,将从该标识值对应的数据在数据文件中的存储地址中,查询待查询数据的长度信息。如可以通过标识值对应的数据的长度信息在数据文件中相对数据存储区域首地址的偏移量,查询到待查询数据的长度信息。
举例来说,若查询出偏移量为3字节,则说明待查询数据的长度信息存储在数据文件中相对数据存储区域首地址偏移3字节的地址处,从而可以查询到待查询数据的长度信息。
步骤505、根据长度信息从标识值对应的数据在数据文件中的存储地址中查询待查询数据。
步骤506、向终端设备返回查询结果。
在本发明实施例中,在获取到待查询数据的长度信息之后,将从标识值对应的数据在数据文件中的存储地址中读取长度信息对应的待查询数据。
继续参照图4所示,若待查询数据的标识值为key1,且根据key1查询到value1的长度信息value_len1为8字节,则将从存储在value_len1后面的数据中读取8字节的数据,即为待查询数据。
本发明实施例提供的数据查询方法,通过接收数据查询指令,该数据查询指令中包括待查询数据的标识值,并在第一索引中查找该标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址;其中,该第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址,且第一索引存储在内存中;然后根据该标识值区间在第二索引中的存储地址,查找该标识值对应的数据在数据文件中的存储地址,该第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据,该第二索引和数据文件存储在磁盘中;最后从标识值对应的数据在数据文件中的存储地址查询待查询数据。由于将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样不仅可以减小标识值占用内存的空间,提高磁盘的利用率,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。另外,根据待查询数据的长度信息,从标识值对应的数据在数据文件中的存储地址中查询待查询数据,可以提高待查询数据读取的速率。
图6为本发明实施例提供的数据查询方法实施例三的信令流程图。本实施例在图3所示实施例的基础上,对如何在第一索引中查找标识值所在的标识值区间以及标识值区间在第二索引中的存储地址的实施例,进行详细介绍。如图6所示,本实施例的方法可以包括:
步骤601、接收数据查询指令,该数据查询指令中包括待查询数据的标识值。
步骤602、若第一索引包括多级索引,则从多级索引中的第一级索引开始,依次查找标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在第二索引中的存储地址。
在本实施例中,第一索引包括一级索引或多级索引;若包括多级索引,则每级索引包括至少一个标识值区间以及该标识值区间在相邻的下一级索引中的存储地址,多级索引中的最后一级索引的下一级索引为第二索引,相邻级索引之间的标识值区间范围依次缩小。
具体地,第一索引中可以包括一级索引,也可以包括多级索引,其中,若第一索引中包括一级索引时,则该级索引的下一级索引为第二索引,即该级索引中包括至少一个标识值区间以及该标识值区间在第二索引中的存储地址。另外,这一级索引将对应一个数据块,该数据块的大小可以小于或等于预设阈值,即这一级索引占用的内存空间将小于或等于该预设阈值,其中,预设阈值可以根据实际情况或者经验进行设置,例如为4K等。
当查询服务器在接收到待查询数据的标识值之后,若第一索引中包括一级索引,则可以直接在该级索引中查找该标识值在该级索引中所在的标识值区间在第二索引中的存储地址。
继续参照图4所示,若第一索引中包括多级索引时,则每级索引包括至少一个标识值区间以及该标识值区间在相邻的下一级索引中的存储地址,例如:第1级索引中包括至少一个标识值区间,如key1-key x,以及该标识值区间key1-key x在第2级索引中的存储地址offset”,第2级索引中包括至少一个标识值区间,以及该标识值区间在第3级索引中的存储地址等等。
在一种可能的实现方式中,第一索引的各级索引对应多个数据块,则每级索引中包括的各标识值区间在相邻的下一级索引中的存储地址可以为各标识值区间在相邻的下一级索引中的数据块的块号。
另外,多级索引中的最后一级索引的下一级索引为第二索引,即最后一级索引中包括多个标识值区间以及各标识值区间在第二索引中的存储地址。
可以理解的是,对于每一级索引来说,上一级索引中均包括各标识值区间中起始标识值在相邻的下一级索引中的存储地址,因此相邻级索引之间的标识值区间范围依次缩小,即下一级索引中的标识值区间比相邻的上一级索引中的标识值区间范围小。例如:若第1级索引中存储有key1、key40和key75,则说明第1级索引中包括有标识值区间key1-key39、key40-key74以及key75-key n,其中,key n为最大的key值,另外,第1级索引中还存储有key1-key39在第2级索引中的存储位置,key40-key74在第2级索引中的存储位置,以及key75-key n在第2级索引中的存储位置。若第2级索引中存储有key1、key20、key40、key60、key75和key90,则说明第2级索引中包括有标识值区间key1-key19、key20-key39、key40-key59、key60-key74、key75-key89以及key90-key n,另外,第2级索引中还存储有上述各标识值区间在第3级索引中的存储位置。以此类推,直至到最后一级索引。由此可见,下一级索引中的标识值区间比相邻的上一级索引中的标识值区间范围小。
另外,可选地,在第一索引包括多级索引时,上一级索引中的每个标识值区间可以对应相邻下一级索引中的至少2个连续的标识值区间。
当查询服务器在接收到待查询数据的标识值之后,若第一索引中包括多级索引,则将从多级索引中的第一级索引开始,依次查找标识值在该级索引中所在的标识值区间在下一级索引中的存储地址。
在一种可能的实现方式中,采用二分法查找标识值在该级索引中所在的标识值区间。
具体地,各级索引中的标识值均是按序排列,如按照从大到小的顺序或者从小到大的顺序存储的,因此,查询服务器可以采用二分法查找标识值在任意一级索引中所在的标识值区间。
按照上述查询方式,在查找到第一索引中的最后一级索引时,将从最后一级索引中查找标识值在该级索引中所在的标识值区间在第二索引中的存储地址。
值得注意的是,继续参照图4所示,在一种可能的实现方式中,第一索引和第二索引中的标识值,如key的长度固定,例如可以为8字节。第一索引中的存储地址offset1’、offset n’…offset w’和offset 1”…offset x”的长度也固定,例如可以为4字节,第二索引中的存储地址offset 1、offset 2…offsetn的长度也固定,例如可以为8字节。本领域技术人员可以理解,由于标识值和存储地址的长度固定,因此,可以更好的体现二分查找的性能。
另外,需要进行说明的是,对于不满足长度为8字节的标识值key,可以对标识值key做哈希处理,以变换为8字节的标识值key。在实际应用中,若在进行哈希处理的过程中出现冲突时,将采用现有技术对出现的哈希冲突进行处理,对于处理冲突的具体过程,本发明实施例在此不再赘述。
步骤603、根据标识值区间在第二索引中的存储地址,查找标识值对应的数据在数据文件中的存储地址。
其中,第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,数据文件中包括每个标识值对应的数据;第二索引和数据文件存储在磁盘中。
步骤604、从标识值对应的数据在数据文件中的存储地址查询待查询数据。
步骤605、向终端设备返回查询结果。
步骤603-步骤605与步骤303-步骤305类似,此处不再赘述。
本发明实施例提供的数据查询方法,在第一索引中包括多级索引时,将从多级索引中的第一级索引开始,依次查找标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找标识值在该级索引中所在的标识值区间在第二索引中的存储地址,由于采用多级索引存储标识值,使得索引在内存中不存在空闲内存碎片,从而减少索引占用的内存量。
在上述各实施例的基础上,每个标识值区间内的标识值顺序且连续排列;且第一索引和第二索引中的各标识值区间的标识值顺序且连续排列。
具体地,若第一索引中包括一级索引,则第一索引可以按照标识值以及标识值区间在第二索引中的存储位置的顺序连续写入。若第一索引中包括多级索引,则每级索引均可以按照标识值以及标识值区间在相邻的下一级索引中的存储位置的顺序连续写入,对于最后一级索引,则可以按照标识值以及标识值区间在第二索引中的存储位置的顺序连续写入。另外,各标识值区间内的标识值按照从大到小或者从小到大的顺序连续排列。
第二索引可以按照数据文件中的数据对应的标识值,以及数据在数据文件中的存储地址的顺序连续写入。另外,各标识值区间内的标识值按照从大到小或者从小到大的顺序连续排列。
值得注意的是,由于将第一索引中的每级索引以及第二索引均按照4K大小划分为多个数据块,因此,若某个标识值区间中的部分标识值在前一个数据块中,部分标识值在后一个数据块中,则将进行向后对齐,即将这一标识值区间内的所有标识值均存储在后一个数据块中。也就是说,将同一个标识值区间内的所有标识值存储在相同的数据块中。
在本实施例中,由于每个标识值区间内的标识值顺序且连续排列;第一索引和第二索引中的各标识值区间的标识值顺序且连续排列,这样,可以减少内存和磁盘中空闲的碎片,提高了内存和磁盘的利用率。
图7为本发明实施例提供的数据查询装置实施例一的结构示意图。该数据查询装置可以为独立的服务器,也可以为集成在服务器中的装置,该装置可以通过软件、硬件或者软硬件结合的方式实现。如图7所示,该装置包括:
接收模块11用于接收数据查询指令,所述数据查询指令中包括待查询数据的标识值;
查找模块12用于在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址;其中,所述第一索引中对应多个标识值区间以及每个所述标识值区间在所述第二索引中的存储地址;所述第一索引存储在内存中;
所述查找模块12还用于根据所述标识值区间在所述第二索引中的存储地址,查找所述标识值对应的数据在数据文件中的存储地址;所述第二索引中包括各所述标识值区间内的每个标识值对应的数据在所述数据文件中的存储地址,所述数据文件中包括每个所述标识值对应的数据;所述第二索引和所述数据文件存储在磁盘中;
查询模块13用于从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据。
本发明实施例提供的数据查询装置,接收模块11通过接收数据查询指令,该数据查询指令中包括待查询数据的标识值,查找模块12并在第一索引中查找该标识值所在的标识值区间以及该标识值区间在第二索引中的存储地址;其中,该第一索引中对应多个标识值区间以及每个标识值区间在第二索引中的存储地址,且第一索引存储在内存中;然后查找模块12根据该标识值区间在第二索引中的存储地址,查找该标识值对应的数据在数据文件中的存储地址,该第二索引中包括各标识值区间内的每个标识值对应的数据在数据文件中的存储地址,该数据文件中包括每个标识值对应的数据,该第二索引和数据文件存储在磁盘中;最后查询模块13从标识值对应的数据在数据文件中的存储地址查询待查询数据。由于将第一索引存储在内存中,将第二索引和数据文件存储在磁盘中,这样不仅可以减小标识值占用内存的空间,提高磁盘的利用率,而且可以使得查询服务器最多只访问两次磁盘,使得最坏情况下的访问时延可控。
可选地,所述第二索引对应多个数据块,且每个所述数据块用于存储一个所述标识值区间内的所有标识值对应的数据在所述数据文件中的存储地址信息。
可选地,所述第一索引中包括:每个所述标识值区间的起始标识值在所述第二索引中的存储地址。
可选地,每个所述标识值对应的数据在所述数据文件中的存储地址中还包括所述标识值对应的数据的长度信息。
可选地,所述查询模块13具体用于:
从所述标识值对应的数据在所述数据文件中的存储地址中查询待查询数据的长度信息;
根据所述长度信息从所述标识值对应的数据在所述数据文件中的存储地址中查询所述待查询数据。
本发明实施例提供的数据查询装置,可以执行上述图5所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,所述第一索引包括一级索引或多级索引;
若包括多级索引,则每级索引包括至少一个标识值区间以及各所述标识值区间在相邻的下一级索引中的存储地址,所述多级索引中的最后一级索引的下一级索引为所述第二索引,相邻级索引之间的标识值区间范围依次缩小。
可选地,上一级索引中的每个标识值区间对应相邻下一级索引中的至少2个连续的标识值区间。
可选地,所述查找模块12具体用于:
若所述第一索引包括多级索引,则从所述多级索引中的第一级索引开始,依次查找所述标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在所述第二索引中的存储地址。
可选地,每个所述标识值区间内的标识值顺序且连续排列;所述第一索引和所述第二索引中的各所述标识值区间的标识值顺序且连续排列。
可选地,所述查找模块12还用于:
采用二分法查找标识值在该级索引中所在的标识值区间。
本发明实施例提供的数据查询装置,可以执行上述图6所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
图8A示出了本发明查询服务器的一种可能的结构示意图。查询服务器800包括:处理单元802和通信单元803。处理单元802用于对查询服务器800的动作进行控制管理,例如,处理单元802用于支持查询服务器800执行图3的步骤302-步骤304,处理单元802还可以用于支持查询服务器800执行图5的步骤502-步骤505,处理单元802还可以用于支持查询服务器800执行图6的步骤602-步骤604,和/或用于本发明所描述的技术的其它过程。通信单元803用于支持查询服务器800与其它网络实体的通信,例如与图1中示出的终端设备之间的通信。查询服务器800还可以包括存储单元801,用于存储查询服务器800的计算机程序代码和数据。
其中,处理单元802可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(DigitalSignalProcessor,DSP),专用集成电路(Application-SpecificIntegratedCircuit,ASIC),现场可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元803可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储单元801可以是存储器。
当处理单元802为处理器,通信单元803为通信接口,存储单元801为存储器时,本发明所涉及的查询服务器可以为图8B所示的查询服务器。
参阅图8B所示,该查询服务器810包括:处理器812、通信接口813、存储器811。可选的,查询服务器810还可以包括总线814。其中,通信接口813、处理器812以及存储器811可以通过总线814相互连接;总线814可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。所述总线814可以分为地址总线、数据总线、控制总线等。为便于表示,图8B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
另外,存储器811中存储有计算机程序,并且被配置为由处理器812执行,该计算机程序包括用于执行如上任一实施例所述的方法的指令。
本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行前述任一实施例提供的数据查询方法。其中,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (22)
1.一种数据查询方法,其特征在于,包括:
接收数据查询指令,所述数据查询指令中包括待查询数据的标识值;
在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址;其中,所述第一索引中对应多个标识值区间以及每个所述标识值区间在所述第二索引中的存储地址;所述第一索引存储在内存中;
根据所述标识值区间在所述第二索引中的存储地址,查找所述标识值对应的数据在数据文件中的存储地址;所述第二索引中包括各所述标识值区间内的每个标识值对应的数据在所述数据文件中的存储地址,所述数据文件中包括每个所述标识值对应的数据;所述第二索引和所述数据文件存储在磁盘中;
从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据。
2.根据权利要求1所述的方法,其特征在于,所述第二索引对应多个数据块,且每个所述数据块用于存储一个所述标识值区间内的所有标识值对应的数据在所述数据文件中的存储地址信息。
3.根据权利要求1或2所述的方法,其特征在于,所述第一索引中包括:每个所述标识值区间的起始标识值在所述第二索引中的存储地址。
4.根据权利要求1所述的方法,其特征在于,每个所述标识值对应的数据在所述数据文件中的存储地址中还包括所述标识值对应的数据的长度信息。
5.根据权利要求4所述的方法,其特征在于,所述从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据,包括:
从所述标识值对应的数据在所述数据文件中的存储地址中查询待查询数据的长度信息;
根据所述长度信息从所述标识值对应的数据在所述数据文件中的存储地址中查询所述待查询数据。
6.根据权利要求1所述的方法,其特征在于,所述第一索引包括一级索引或多级索引;
若包括多级索引,则每级索引包括至少一个标识值区间以及各所述标识值区间在相邻的下一级索引中的存储地址,所述多级索引中的最后一级索引的下一级索引为所述第二索引,相邻级索引之间的标识值区间范围依次缩小。
7.根据权利要求6所述的方法,其特征在于,上一级索引中的每个标识值区间对应相邻下一级索引中的至少2个连续的标识值区间。
8.根据权利要求7所述的方法,其特征在于,所述在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址,包括:
若所述第一索引包括多级索引,则从所述多级索引中的第一级索引开始,依次查找所述标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在所述第二索引中的存储地址。
9.根据权利要求1-8任一项所述的方法,其特征在于,每个所述标识值区间内的标识值顺序且连续排列;所述第一索引和所述第二索引中的各所述标识值区间的标识值顺序且连续排列。
10.根据权利要求8所述的方法,其特征在于,所述查找所述标识值在该级索引中所在的标识值区间,包括:
采用二分法查找标识值在该级索引中所在的标识值区间。
11.一种数据查询装置,其特征在于,包括:
接收模块,用于接收数据查询指令,所述数据查询指令中包括待查询数据的标识值;
查找模块,用于在第一索引中查找所述标识值所在的标识值区间以及所述标识值区间在第二索引中的存储地址;其中,所述第一索引中对应多个标识值区间以及每个所述标识值区间在所述第二索引中的存储地址;所述第一索引存储在内存中;
所述查找模块,还用于根据所述标识值区间在所述第二索引中的存储地址,查找所述标识值对应的数据在数据文件中的存储地址;所述第二索引中包括各所述标识值区间内的每个标识值对应的数据在所述数据文件中的存储地址,所述数据文件中包括每个所述标识值对应的数据;所述第二索引和所述数据文件存储在磁盘中;
查询模块,用于从所述标识值对应的数据在所述数据文件中的存储地址查询所述待查询数据。
12.根据权利要求11所述的装置,其特征在于,所述第二索引对应多个数据块,且每个所述数据块用于存储一个所述标识值区间内的所有标识值对应的数据在所述数据文件中的存储地址信息。
13.根据权利要求11或12所述的装置,其特征在于,所述第一索引中包括:每个所述标识值区间的起始标识值在所述第二索引中的存储地址。
14.根据权利要求11所述的装置,其特征在于,每个所述标识值对应的数据在所述数据文件中的存储地址中还包括所述标识值对应的数据的长度信息。
15.根据权利要求14所述的装置,其特征在于,所述查询模块,具体用于:
从所述标识值对应的数据在所述数据文件中的存储地址中查询待查询数据的长度信息;
根据所述长度信息从所述标识值对应的数据在所述数据文件中的存储地址中查询所述待查询数据。
16.根据权利要求11所述的装置,其特征在于,所述第一索引包括一级索引或多级索引;
若包括多级索引,则每级索引包括至少一个标识值区间以及各所述标识值区间在相邻的下一级索引中的存储地址,所述多级索引中的最后一级索引的下一级索引为所述第二索引,相邻级索引之间的标识值区间范围依次缩小。
17.根据权利要求16所述的装置,其特征在于,上一级索引中的每个标识值区间对应相邻下一级索引中的至少2个连续的标识值区间。
18.根据权利要求17所述的装置,其特征在于,所述查找模块,具体用于:
若所述第一索引包括多级索引,则从所述多级索引中的第一级索引开始,依次查找所述标识值在该级索引中所在的标识值区间在下一级索引中的存储地址,直至在最后一级索引中查找所述标识值在该级索引中所在的标识值区间在所述第二索引中的存储地址。
19.根据权利要求11-18任一项所述的装置,其特征在于,每个所述标识值区间内的标识值顺序且连续排列;所述第一索引和所述第二索引中的各所述标识值区间的标识值顺序且连续排列。
20.根据权利要求18所述的装置,其特征在于,所述查找模块,还用于:
采用二分法查找标识值在该级索引中所在的标识值区间。
21.一种服务器,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-10任一项所述的方法的指令。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395378.6A CN108255958B (zh) | 2017-12-21 | 2017-12-21 | 数据查询方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395378.6A CN108255958B (zh) | 2017-12-21 | 2017-12-21 | 数据查询方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255958A true CN108255958A (zh) | 2018-07-06 |
CN108255958B CN108255958B (zh) | 2022-05-03 |
Family
ID=62723478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711395378.6A Active CN108255958B (zh) | 2017-12-21 | 2017-12-21 | 数据查询方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255958B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299087A (zh) * | 2018-08-14 | 2019-02-01 | 中国平安财产保险股份有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN109766978A (zh) * | 2019-01-17 | 2019-05-17 | 北京悦时网络科技发展有限公司 | 一种词码的生成方法、识别方法、装置、存储介质 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN110222074A (zh) * | 2019-06-14 | 2019-09-10 | 北京金山云网络技术有限公司 | 索引查找方法、查找装置、电子设备及存储介质 |
CN110263061A (zh) * | 2019-06-17 | 2019-09-20 | 郑州阿帕斯科技有限公司 | 一种数据查询方法及系统 |
CN110569397A (zh) * | 2019-09-06 | 2019-12-13 | 百度在线网络技术(北京)有限公司 | 网络社区的信息查询方法、装置、设备及存储介质 |
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN111506570A (zh) * | 2020-03-05 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 数据存储及查询方法、装置、电子设备及存储介质 |
CN111651438A (zh) * | 2020-04-28 | 2020-09-11 | 银江股份有限公司 | 基于MapDB的结构化数据去重方法、装置、设备及介质 |
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
CN111814003A (zh) * | 2019-04-12 | 2020-10-23 | 伊姆西Ip控股有限责任公司 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
CN111803917A (zh) * | 2020-06-30 | 2020-10-23 | 北京金山云网络技术有限公司 | 资源的处理方法和装置 |
CN111859033A (zh) * | 2020-07-22 | 2020-10-30 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN112527804A (zh) * | 2021-01-27 | 2021-03-19 | 中智关爱通(南京)信息科技有限公司 | 文件存储方法、文件读取方法和数据存储系统 |
CN112817966A (zh) * | 2020-07-24 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 数据检索方法、装置、电子设备以及存储介质 |
CN113157703A (zh) * | 2021-04-29 | 2021-07-23 | 北京小米移动软件有限公司 | 数据的查询方法、装置、电子设备和存储介质 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN114661666A (zh) * | 2022-03-03 | 2022-06-24 | 北京城市网邻信息技术有限公司 | 数据搜索方法、装置、设备及存储介质 |
CN115658730A (zh) * | 2022-09-20 | 2023-01-31 | 中国科学院自动化研究所 | 稀疏数据的查询方法、装置、设备和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782922A (zh) * | 2009-12-29 | 2010-07-21 | 山东山大鸥玛软件有限公司 | 一种面向海量数据检索的多级桶哈希索引方法 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN104182508A (zh) * | 2014-08-19 | 2014-12-03 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
US9189414B1 (en) * | 2013-09-26 | 2015-11-17 | Emc Corporation | File indexing using an exclusion list of a deduplicated cache system of a storage system |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
US20170116246A1 (en) * | 2015-10-21 | 2017-04-27 | International Business Machines Corporation | Index management |
-
2017
- 2017-12-21 CN CN201711395378.6A patent/CN108255958B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782922A (zh) * | 2009-12-29 | 2010-07-21 | 山东山大鸥玛软件有限公司 | 一种面向海量数据检索的多级桶哈希索引方法 |
CN102779180A (zh) * | 2012-06-29 | 2012-11-14 | 华为技术有限公司 | 数据存储系统的操作处理方法,数据存储系统 |
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
US9189414B1 (en) * | 2013-09-26 | 2015-11-17 | Emc Corporation | File indexing using an exclusion list of a deduplicated cache system of a storage system |
CN104182508A (zh) * | 2014-08-19 | 2014-12-03 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
US20170116246A1 (en) * | 2015-10-21 | 2017-04-27 | International Business Machines Corporation | Index management |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299087A (zh) * | 2018-08-14 | 2019-02-01 | 中国平安财产保险股份有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN109766978A (zh) * | 2019-01-17 | 2019-05-17 | 北京悦时网络科技发展有限公司 | 一种词码的生成方法、识别方法、装置、存储介质 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN111814003B (zh) * | 2019-04-12 | 2024-04-23 | 伊姆西Ip控股有限责任公司 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
CN111814003A (zh) * | 2019-04-12 | 2020-10-23 | 伊姆西Ip控股有限责任公司 | 用于建立元数据索引的方法、电子设备和计算机程序产品 |
CN110222074A (zh) * | 2019-06-14 | 2019-09-10 | 北京金山云网络技术有限公司 | 索引查找方法、查找装置、电子设备及存储介质 |
CN110263061A (zh) * | 2019-06-17 | 2019-09-20 | 郑州阿帕斯科技有限公司 | 一种数据查询方法及系统 |
CN110569397A (zh) * | 2019-09-06 | 2019-12-13 | 百度在线网络技术(北京)有限公司 | 网络社区的信息查询方法、装置、设备及存储介质 |
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN111241108B (zh) * | 2020-01-16 | 2023-12-26 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN111506570A (zh) * | 2020-03-05 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 数据存储及查询方法、装置、电子设备及存储介质 |
CN111651438A (zh) * | 2020-04-28 | 2020-09-11 | 银江股份有限公司 | 基于MapDB的结构化数据去重方法、装置、设备及介质 |
CN111803917A (zh) * | 2020-06-30 | 2020-10-23 | 北京金山云网络技术有限公司 | 资源的处理方法和装置 |
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
CN111797098B (zh) * | 2020-06-30 | 2024-01-19 | 北京经纬恒润科技股份有限公司 | 一种报文解析方法、装置及车载终端 |
CN111859033A (zh) * | 2020-07-22 | 2020-10-30 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN111859033B (zh) * | 2020-07-22 | 2023-10-27 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN112817966A (zh) * | 2020-07-24 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 数据检索方法、装置、电子设备以及存储介质 |
CN112817966B (zh) * | 2020-07-24 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 数据检索方法、装置、电子设备以及存储介质 |
CN112527804B (zh) * | 2021-01-27 | 2022-09-16 | 中智关爱通(上海)科技股份有限公司 | 文件存储方法、文件读取方法和数据存储系统 |
CN112527804A (zh) * | 2021-01-27 | 2021-03-19 | 中智关爱通(南京)信息科技有限公司 | 文件存储方法、文件读取方法和数据存储系统 |
CN113312313B (zh) * | 2021-01-29 | 2023-09-29 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN113157703B (zh) * | 2021-04-29 | 2023-11-21 | 北京小米移动软件有限公司 | 数据的查询方法、装置、电子设备和存储介质 |
CN113157703A (zh) * | 2021-04-29 | 2021-07-23 | 北京小米移动软件有限公司 | 数据的查询方法、装置、电子设备和存储介质 |
CN114661666A (zh) * | 2022-03-03 | 2022-06-24 | 北京城市网邻信息技术有限公司 | 数据搜索方法、装置、设备及存储介质 |
CN115658730A (zh) * | 2022-09-20 | 2023-01-31 | 中国科学院自动化研究所 | 稀疏数据的查询方法、装置、设备和计算机可读存储介质 |
CN115658730B (zh) * | 2022-09-20 | 2024-02-13 | 中国科学院自动化研究所 | 稀疏数据的查询方法、装置、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108255958B (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958A (zh) | 数据查询方法、装置和存储介质 | |
CN110399568B (zh) | 信息搜索方法、装置、终端及存储介质 | |
US10838963B2 (en) | Optimized access for hierarchical low cardinality value synopsis in analytical databases | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
US10885085B2 (en) | System to organize search and display unstructured data | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
US9904705B2 (en) | Data table performance optimization | |
WO2019184236A1 (zh) | 保险产品计算模型的配置方法、装置、计算机设备及存储介质 | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
CN105468644B (zh) | 一种用于在数据库中进行查询的方法与设备 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN109271428A (zh) | 数据抽取方法及基于地理信息的数据展示方法 | |
CN110019644B (zh) | 对话实现中的搜索方法、装置和计算机可读存储介质 | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
CN111625638A (zh) | 一种问句处理方法、装置、设备及可读存储介质 | |
CN106649800A (zh) | 一种基于Solr的中文检索方法 | |
CN113849499A (zh) | 数据的查询方法、装置、存储介质及电子装置 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
CN110287284B (zh) | 语义匹配方法、装置及设备 | |
CN108304469B (zh) | 用于字符串模糊匹配的方法和装置 | |
CN112416626B (zh) | 一种数据处理方法和装置 | |
CN114265884A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN109325149B (zh) | Xml报文检索方法及装置 | |
RU2656721C1 (ru) | Способ организации хранения частично совпадающих больших объектов |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |