一种数据存储方法及查询方法技术

技术编号:15572019 阅读:35 留言:0更新日期:2017-06-10 10:11
本发明专利技术公开了一种数据存储方法及查询方法,数据存储方法包括将待存储数据按照层级的关联关系存入预先设置的多叉树结构中,然后将待存储数据按照数据位的位置关系分解成N个层级。通过这样的存储方式,在进行后续的查询过程中,不需要遍历全部的存储数据,只需要依据待查询数据中各数据位的层级关系,遍历多叉树结构即可,最大的循环次数为多叉树的节点层级,并且循环次数不会随着数据量的增多而增多。因此,本发明专利技术提供的数据存储方法能够降低后续查询的工作量,从而降低查询时间和提高查询效率。

Data storage method and inquiry method

The invention discloses a method for data storage and query method, data storage method comprises storing the data to be in accordance with the correlation level in multi tree set in advance, and then the data to be stored in accordance with the position of data bits into N level. By this way in the process of storage, for subsequent queries, do not need to traverse all the stored data, only need to according to the query hierarchy of each data bit data, multiple traversal binary tree structure, the node level cycles for the largest tree, and the number of cycles will not increase with the increasing of the data the amount of. Therefore, the data storage method provided by the invention can reduce the workload of the subsequent query, thereby reducing the query time and improving the query efficiency.

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种数据存储方法及查询方法
技术介绍
随着手机的普及,出现了海量的用户,因此对于手机号码的管理也越来越复杂。例如,由于一些不法分子利用手机进行广告推销或者引诱消费者与其联系,从而导致消费者出现巨额的损失。因此,运营商或者消费者可以将这些手机号码进行存储构成一个黑名单,当需要进行正常的通信业务时,将目标号码与存储的黑名单进行比较,如果黑名单中存在与目标号码相同的号码,说明目标号码就在黑名单的范围内,则需要过滤掉这个目标号码,如果黑名单中不存在与目标号码相同的号码,说明目标号码不在黑名单的范围内,则不需要过滤掉这个目标号码,可以与这个目标号码进行正常的通信业务。现有技术中,采用的存储方法就是简单的将每个手机号码存储在指定的区域中。由于黑名单中的号码非常多,可能存在上千万个,因此,以上述的存储方式进行存储后,如果需要对某个号码进行查询,则需要遍历大量的号码,甚至是全部的号码。如果有100个号码,则最大循环次数就是100次,如果是1000个号码,则最大循环次数就是1000次,很显然,如果是千万级别的个数,则最大的循环次数就是千万次。综上所述,现有的存储方式使得后续的查询工作非常繁琐,会耗费大量的时间,并且随着数据的增多,查询的循环次数也在不断增加,对于服务器的性能影响非常大。因此,如何降低查询时间以提高查询的效率是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是提供一种数据存储方法及数据查询方法,本方法能够克服后续查询工作繁琐,耗费大量时间的问题,并且不会随着数据的增多,而增加查询的循环次数。因此,本方法能够降低查询时间以提高查询的效率。为解决上述技术问题,本专利技术提供一种数据存储方法,包括:将待存储数据按照数据位的位置关系分解成N个层级;将所述待存储数据按照层级的关联关系存入预先设置的多叉树结构中;其中,所述多叉树中的节点层级与所述N个层级对应,N为正整数,且等于或小于所述待存储数据的数据位数。优选地,所述待存储数据为包含多位数字的数字信息。优选地,所述数字信息为10进制数据。优选地,所述将待存储数据按照数据位的位置关系分解成N个层级具体包括:将所述待存储数据按照预定规则进行压缩以生成对应的新待存储数据;将所述新待存储数据按照数据位的位置关系分解成N个层级。优选地,所述待存储数据为包含11位数字的手机号码。优选地,所述预定规则为预定进制转换,则所述新待存储数据为所述待存储数据按照预定进制转换后的结果。优选地,所述预定进制转换为16进制转换或32进制转换或64进制转换。优选地,所述待存储数据为包含多位字母的字母信息。优选地,所述N个层级的先后顺序与所述待存储数据的读取顺序相同。为解决上述技术问题,本专利技术提供一种数据查询方法,基于上述所述的数据存储方法,包括:将待查询数据按照数据位的关系分解成N个层级;将所述待查询数据按照层级的关联关系遍历所述多叉树结构,直到所述多叉树结构中的第M个节点层级中未包含有对应的数据位或查询到所述待查询数据为止;其中,M小于或等于N。本专利技术所提供的数据存储方法,包括将待存储数据按照层级的关联关系存入预先设置的多叉树结构中,然后将待存储数据按照数据位的位置关系分解成N个层级。通过这样的存储方式,在进行后续的查询过程中,不需要遍历全部的存储数据,只需要依据待查询数据中各数据位的层级关系,遍历多叉树结构即可,最大的循环次数为多叉树的节点层级,并且循环次数不会随着数据量的增多而增多。因此,本专利技术提供的数据存储方法能够降低后续查询的工作量,从而降低查询时间和提高查询效率。此外,本专利技术还提供的一种数据查询方法基于上述所述的数据存储方法,在查询过程中,该方法不需要遍历全部的存储数据,只需要依据待查询数据中各数据位的层级关系,遍历多叉树结构即可,最大的循环次数为多叉树的节点层级,并且循环次数不会随着数据量的增多而增多。因此,本专利技术提供的数据查询方法能够降低查询的工作量,从而降低查询时间和提高查询效率。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种数据存储方法的流程图;图2为专利技术实施例提供的一种数据存储结构示意图;图3为本专利技术实施例提供另一种数据存储方法的流程图;图4为本专利技术实施例提供的一种经过压缩后的存储结构示意图;图5为本专利技术实施例提供的一种数据查询方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。本专利技术的核心是提供一种数据存储方法及数据查询方法,本方法能够克服后续查询工作繁琐,耗费大量时间的问题,并且不会随着数据的增多,而增加查询的循环次数。因此,本方法能够降低查询时间以提高查询的效率。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。图1为本专利技术实施例提供的一种数据存储方法的流程图。如图1所示,包括:S10:将待存储数据按照数据位的位置关系分解成N个层级。可以理解的是,待存储数据可以为包含多位数字的数字信息或为包含多位字母的字母信息。例如,对于数字信息来说如果是10进制的数据,则数据位中的内容就是0-9,数据位中的内容均是数字,如果是16进制的数据,则数据位中的内容就是0-F,则数据位中的内容除了0-9数字外,还包括A-F几个字母,但是A-F几个字母也为数字信息。另外,还可以是2进制或者32进制的数据,本实施例不再赘述。本实施例中,按照数据位的位置关系分解成N个层级必须保证每个数据位在原始数据中的位置关系与分解后的层级关系时相同的。例如,如果数据位为N位,分解成N个层级的话,则第一个数据位的数据如果在第一个层级,则第二个数据位的数据必须是第二个层级,第三个数据位的数据必须是第三个层级,以此类推;同样的,如果第一个数据位的数据在最后一个层级,则第二个数据位的数据必须在倒数第二个层级,第三个数据位的数据必须在倒数第三个层级,以此类推。只有这样的分解方式,才能保证每个数据位在原始数据中的位置关系与在分解结构中的位置关系是相同的。需要说明的是,上文中描述的数据位有N位,则分解成N个层级只是一种具体实现形式,在另外一种实施例中,还可以是每两位,或者每三位等形式,本实施例不再赘述。分解的层级越多,则需要循环的查询的次数越多,但是每一层的节点较少,即同一层的查询时间就会较少。S11:将待存储数据按照层级的关联关系存入预先设置的多叉树结构中,其中,多叉树中的节点层级与N个层级对应,N为正整数,且等于或小于待存储数据的数据位数。多叉树结构为倒立的树状结构,多叉树中有多个节点层级,这里的节点层级与待存储数据分解成的N个层级相互对应。为了让本领域技术人员更加理解本专利技术所提供的技术方案,本实施例中给出一个简单的例子加以说明。如果待存储数据均为6位的数字信息,且为10进制,例如本文档来自技高网
...
一种数据存储方法及查询方法

【技术保护点】
一种数据存储方法,其特征在于,包括:将待存储数据按照数据位的位置关系分解成N个层级;将所述待存储数据按照层级的关联关系存入预先设置的多叉树结构中;其中,所述多叉树中的节点层级与所述N个层级对应,N为正整数,且等于或小于所述待存储数据的数据位数。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:将待存储数据按照数据位的位置关系分解成N个层级;将所述待存储数据按照层级的关联关系存入预先设置的多叉树结构中;其中,所述多叉树中的节点层级与所述N个层级对应,N为正整数,且等于或小于所述待存储数据的数据位数。2.根据权利要求1所述的数据存储方法,其特征在于,所述待存储数据为包含多位数字的数字信息。3.根据权利要求2所述的数据存储方法,其特征在于,所述数字信息为10进制数据。4.根据权利要求3所述的数据存储方法,其特征在于,所述将待存储数据按照数据位的位置关系分解成N个层级具体包括:将所述待存储数据按照预定规则进行压缩以生成对应的新待存储数据;将所述新待存储数据按照数据位的位置关系分解成N个层级。5.根据权利要求4所述的数据存储方法,其特征在于,所述待存储数据为包含11位数字的手机号码。6.根...

【专利技术属性】
技术研发人员:赵鸿李伟黄云李川杨敏董文庆
申请(专利权)人:上海大汉三通数据通信有限公司
类型:发明
国别省市:上海;31

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

1