一种数据库的索引文件建立方法及检索方法技术

技术编号:17597200 阅读:63 留言:0更新日期:2018-03-31 10:20
一种数据库的索引文件建立方法及检索方法、计算机可读存储介质,任一索引由该其对应的数据在所选取的表字段下各内容值以及它们的哈希值构成,使得可以在检索遍历索引时,先与索引所包含的哈希值进行匹配,若匹配成功,再索引所包含的表字段下的内容值匹配,使得检索比较高效;进一步地,由于索引中表字段下的内容值的哈希值的预设长度小于该表字段的长度,从而相比传统方法可以有效地减少匹配的运算量,提高查询和检索效率。

An index file establishment method and retrieval method in a database

An index file database establishing method and retrieval method, computer readable storage medium, any index by the corresponding data in table fields selected under different content values and their hash value which allows retrieval in traversing the index, hash index and first contains value, if matching success, then indexing table field contains the content value, to make the search more efficient; further, the hash table field the content value index value in the preset length is less than the length of the field to the table, compared with the traditional method can effectively reduce the amount of computation, and improve the efficiency of query and retrieval.

【技术实现步骤摘要】
一种数据库的索引文件建立方法及检索方法
本专利技术涉及数据存储和检索领域。
技术介绍
传统检索方法是对索引和查询字串按照正则表达式或字典序比大小的方式进行检索。在面对列少行多的瘦高型数据表的情景下,传统方法会耗费大量的CPU时间在Byte.CompareTo操作上,在面对海量数据的情况下,简单的查询也会消耗很长的时间。
技术实现思路
针对上述问题,本申请提供一种数据库的索引文件建立方法及检索方法。根据第一方面,一种实施例中提供一种数据库的索引文件建立方法,包括:选取数据表的若干个表字段;对于每一个存储的数据,对该数据在所述若干个表字段下的内容值分别做哈希计算处理,得到该数据在这些表字段下各内容值的哈希值;将该数据在这些表字段下各内容值以及它们的哈希值编入索引;每个存储的数据对应一个索引,这些索引构成所述索引文件。在一实施例中,将所述这些表字段下的内容值的哈希值编入索引的前部分,将所述这些表字段下的内容值编入索引的后部分。在一实施例中,所述得到该数据在这些表字段下各内容值的哈希值,是得到该数据在这些表字段下各内容值的预设长度的哈希值。在一实施例中,表字段下的内容值的哈希值的预设长度小于该表字段的长度。在一实施例中,所述选取数据表的若干个表字段,包括选取数据表的若干个关键或常用的表字段。根据第二方面,一种实施例中提供一种数据库的检索方法,包括:读取检索条件;遍历索引文件中的索引;遍历到任一索引时,先比较检索条件与该索引所包含的哈希值是否匹配;若检索条件与该索引所包含的哈希值不匹配,则继续遍历下一个索引;若检索条件与该索引所包含的哈希值匹配,则再比较检索条件与该索引所包含的表字段下的内容值是否匹配;若检索条件与该索引所包含的表字段下的内容值不匹配,则继续遍历下一个索引;若检索条件与该索引所包含的表字段下的内容值匹配,则获取该条索引所对应的数据。在一实施例中,所述检索条件包括至少包括被查询的内容值;所述检索方法还包括:计算检索条件中被查询的内容值的哈希值;所述比较检索条件与该索引所包含的哈希值是否匹配,包括:比较被查询的内容值的哈希值与该索引所包含的哈希值是否匹配;所述比较检索条件与该索引所包含的表字段下的内容值是否匹配,包括:比较被查询的内容值与该索引所包含的表字段下的内容值是否匹配;在所述获取该条索引所对应的数据时,还将获取的数据复制到一结果集中,并继续遍历下一索引。在一实施例中,所述检索条件还可以包括被查询的内容值所属的表字段、被查询的内容值及其计算得到的哈希值在索引中的位置中的至少一者。在一实施例中,索引文件中的一个索引对应一个存储的数据,任一索引由该其对应的数据在所选取的表字段下各内容值以及它们的哈希值构成。根据第三方面,一种实施例中提供一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-9中任一项所述的方法。依据上述实施例的数据库的索引文件建立方法及检索方法、计算机可读存储介质,任一索引由该其对应的数据在所选取的表字段下各内容值以及它们的哈希值构成,使得可以在检索遍历索引时,先与索引所包含的哈希值进行匹配,若匹配成功,再索引所包含的表字段下的内容值匹配,使得检索比较高效;进一步地,由于索引中表字段下的内容值的哈希值的预设长度小于该表字段的长度,从而相比传统方法可以有效地减少匹配的运算量,提高查询和检索效率。附图说明图1为一种实施例的数据库的索引文件建立方法的流程图;图2为一种实施例的数据库的检索方法的流程图。具体实施方式下面通过具体实施方式结合附图对本专利技术作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。请参照图1,在一实施例中公开了一种数据库的索引文件建立方法,包括步骤S100到步骤S120。步骤S100:选取数据表的若干个表字段。在一实施例中,步骤S100选取数据表的若干个表字段,包括选取数据表的若干个关键或常用的表字段,这样可以进一步提高后续的检索和查询的效率。步骤S110:对于每一个存储的数据,对该数据在所述若干个表字段下的内容值分别做哈希计算处理,得到该数据在这些表字段下各内容值的哈希值。在一实施例中,步骤S110得到该数据在这些表字段下各内容值的哈希值,是得到该数据在这些表字段下各内容值的预设长度的哈希值。在一实施例中,索引中表字段下的内容值的哈希值的预设长度小于该表字段的长度。在一实施例中,各数据在同一个表字段下的内容值的哈希值的长度可以是相同的,同一数据在不同表字段下的内容值的哈希值的长度可以是相同的或不同的。步骤S120:将该数据在这些表字段下各内容值以及它们的哈希值编入索引。在一实施例中,步骤S120包括将上述这些表字段下的内容值的哈希值编入索引的前部分,将所述这些表字段下的内容值编入索引的后部分。在一实施例中,表字段下内容值的哈希值及这些表字段下的内容值在任一索引中的位置都是相同的。例如,选取表字段A、B和C,有两条数据,第一条数据在表字段A、B和C下的内容值分别为a1、b1、c1,第二条数据在表字段A、B和C下的内容值分别为a2、b2、c2。如果第一条数据所对应的索引为:a1的哈希值_b1的哈希值_c1的哈希值a1_b1_c1;那么第二条数据所对应的索引为:a2的哈希值_b2的哈希值_c2的哈希值a2_b2_c2;可以看到,不同数据同一字段下的内容值及其哈希值在索引中的位置是相同的。其中,每个存储的数据对应一个索引,这些索引构成上述索引文件。请参照图2,在一实施例中公开了一种数据库的检索方法,包括步骤S200到S250。步骤S200:读取检索条件。步骤S210:遍历索引文件中的索引。步骤S220:遍历到任一索引时,先比较检索条件与该索引所包含的哈希值是否匹配,若检索条件与该索引所包含的哈希值不匹配,则进行步骤S250;若检索条件与该索引所包含的哈希值匹配,则进行步骤S230。步骤S230:比较检索条件与该索引所包含的表字段下的内容值是否匹配。若检索条件与该索引所包含的表字段下的内容值不匹配,则进行步骤S250;若检索条件与该索引所包含的表字段下的内容值匹配,则进行步骤S240。步骤S240:获取该条索引所对应的数据。在一实施例本文档来自技高网...
一种数据库的索引文件建立方法及检索方法

【技术保护点】
一种数据库的索引文件建立方法,其特征在于,包括:选取数据表的若干个表字段;对于每一个存储的数据,对该数据在所述若干个表字段下的内容值分别做哈希计算处理,得到该数据在这些表字段下各内容值的哈希值;将该数据在这些表字段下各内容值以及它们的哈希值编入索引;每个存储的数据对应一个索引,这些索引构成所述索引文件。

【技术特征摘要】
1.一种数据库的索引文件建立方法,其特征在于,包括:选取数据表的若干个表字段;对于每一个存储的数据,对该数据在所述若干个表字段下的内容值分别做哈希计算处理,得到该数据在这些表字段下各内容值的哈希值;将该数据在这些表字段下各内容值以及它们的哈希值编入索引;每个存储的数据对应一个索引,这些索引构成所述索引文件。2.如权利要求1所述的索引文件建立方法,其特征在于,将所述这些表字段下的内容值的哈希值编入索引的前部分,将所述这些表字段下的内容值编入索引的后部分。3.如权利要求1或2所述的索引文件建立方法,其特征在于,所述得到该数据在这些表字段下各内容值的哈希值,是得到该数据在这些表字段下各内容值的预设长度的哈希值。4.如权利要求3所述的索引文件建立方法,其特征在于,索引中表字段下的内容值的哈希值的预设长度小于该表字段的长度。5.如权利要求1所述的索引文件建立方法,其特征在于,所述选取数据表的若干个表字段,包括选取数据表的若干个关键或常用的表字段。6.一种数据库的检索方法,其特征在于,包括:读取检索条件;遍历索引文件中的索引;遍历到任一索引时,先比较检索条件与该索引所包含的哈希值是否匹配;若检索条件与该索引所包含的哈希值不匹配,则继续遍历下一个索引;若检索条件与该索引所包含的哈希值匹配,则再比较检索...

【专利技术属性】
技术研发人员:刘亚歌杨宁
申请(专利权)人:深圳市华讯方舟软件信息有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1