一种应对可追加数据的索引方法技术

技术编号:19692063 阅读:42 留言:0更新日期:2018-12-08 11:14
本发明专利技术提供了一种应对可追加数据的索引方法。当索引数据产生后,如果又产生了新的数据追加到了数据集,这时就需要对索引数据进行同步修改。如果重写索引数据,当历史数据特别巨大时,索引数据也可能特别巨大,这时追加少量数据也会导致重写整个索引数据,导致数据更新性能低。为了解决这个问题特设计了双索引结构,即在索引数据中维护了两段排序索引,现有数据一段,后追加数据一段,当追加的数据在追加索引中累积达到一定量时则重新生成索引数据把两段索引合成一段。当使用索引数据查询数据时,把两段索引的查询结果进行合并就得到了所有满足条件的记录了。

【技术实现步骤摘要】
一种应对可追加数据的索引方法
本专利技术涉及索引,更具体地来说,特别涉及一种应对可追加数据的索引方法。
技术介绍
计算机科学的发展提供了很多优秀的查找算法,例如二分查找(binarysearch)、二叉树查找(binarytreesearch)等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。索引是一种单独的、物理的对数据集中一列或多列的值进行排序的一种存储结构,它是某个数据集中一列或若干列值的集合和相应的指向数据集中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在数据集的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。使用索引可以找到特定值,然后顺指针找到包含该值的行。当数据集中有大量记录时,若要对数据集进行查询,第一种搜索信息方式是全数据集搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量系统时间,并造成大量磁盘I/O操作;第二种就是在数据集中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到数据集中对应的记录。索引被用作包含所关心数据的数据集指针。通过一个索引,能从数据集中直接找到一个特定的记录,而不必连续顺序扫描这个数据集,一次一个地去查找。对于大的数据集,索引是必要的。没有索引,要想得到一个结果要等好几个小时、好几天,而不是几秒钟。当经常查询某列或某几列中的数据时,也需要在数据集上创建索引。索引将占用磁盘空间,并且影响数据更新的速度。但是在多数情况下,索引所带来的数据检索速度优势大大超过它的不足之处。目前排序结构的索引存在的技术缺点是,当索引数据产生后,如果又产生了新的数据追加到了数据集,这时就需要对索引数据进行同步修改。如果重写索引数据,当现有数据特别巨大时,索引数据也可能特别巨大,这时追加少量数据也会导致重写整个索引数据,导致数据更新性能低。现有的另一种索引手段是以B树为结构,B树的特性:关键字集合分布在整棵树上;任何一个关键字出现而且只出现在一个结点中;搜索有可能在非叶子结点结束;其搜索性能等价于在关键字全集内做一次二分查找;自动层次控制。当数据集在面积的删除和增加的时候,需要动态的修改B树中的索引结构,为了实现B树的平衡,达到搜索二分法优化查询的作用,需要在B树非页结点中每个结点都留出一定的空间来记录新数据或者描述删除数据,这一部分被称作填充因子。B树的缺点在于实现过于复杂;在数据情况不好时B树不够平衡;当对其进行更新插入删除时,就需要在物理上移动以调整B树;上述缺点导致数据更新性能低。现有技术存在的两种索引手段都有各自的优缺点,但是都不合适应用在只有追加而没有删除和修改这种情况下,针对这一问题本专利技术创造研发出新的一种索引手段,简单、高效的处理数据追加时索引的修改,保证数据更新性能高。
技术实现思路
为了克服前述问题,本专利技术的目的在于提供一种应对可追加数据的索引方法,本专利技术设计了双索引结构,即在索引数据中维护了两段排序索引,现有数据一段,后追加数据一段,当追加的数据累积达到一定量时则重新生成索引数据把两段排序索引合成一段。当使用索引数据查询数据时,两段排序索引同时进行查找,把两个查询结果进行合并就得到所有满足条件的记录了。本专利技术提供一种应对可追加数据的索引方法,使用步骤为:1.在系统中,数据集里维护了两段排序索引;2.其中一段是数据集现有数据的索引;3.另一段是数据集后追加数据的索引;4.追加数据时只修改第二段追加数据排序索引,第一段现有数据排序索引不动;5.数据集中后追加数据在追加索引中累积达到设定的阈值时,重新生成索引数据把两段排序索引合并成一段排序索引。如上所述的一种应对可追加数据的索引方法,其特征在于,当使用索引数据查询数据时,把两段索引的两个查询结果进行合并就能得到所有满足条件的查询了。如上所述的一种应对可追加数据的索引方法,其特征在于,所述的应对可追加数据的索引方法适用于所有的系统中。如上所述的一种应对可追加数据的索引方法,其特征在于,所述追加索引达到的阈值管理员可以根据系统的性能进行调节设置。如上所述的一种应对可追加数据的索引方法,其特征在于,所述方法适用于为只追加不更新的场景提供一种更简单方便实现的手段。如上所述的一种应对可追加数据的索引方法,其特征在于,所述现有数据索引和追加数据索引都是采用排序式的,优点是容易实现,也不会出现数据不好时可能导致的不平衡问题。以上只是一个理论上的描述,实际实现过程中还会有各种优化的可能,但基本原理不会改变。本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的保护范围。本专利技术的有益效果当索引数据产生后,如果又产生了新的数据追加到了数据集,这时就不需要对索引数据进行同步修改。而是把追加的数据写到追加数据索引里面,当追加的数据累积达到一定数量时则重新生成索引数据把两段索引重建合并成一段。每个追加的数据的成本很低,会大大提高系统的性能。下面结合附图和实施例对本专利技术进一步说明。附图说明图1为本专利技术的流程图;具体实施方式创建一个教师数据集,有字段ID(数字类型)、姓名(字符串类型)、年龄(数字类型)。现有数据总共是十条,为这十条现有数据创建一条按年龄排序的现有数据索引。然后根据学校具体实际需要,此数据集应用在查询和追加数据的情况下,不需要用到插入、删除、修改。正好完全符合本专利技术的使用场景。在有需要对教师数据集追加数据的时候,新建立一段按年龄排序的追加数据索引保存新追加的数据。此数据集设定的阈值(阈值条件可以根据需求设置)是十条,当追加数据达到十条时,重新建立索引,把现有数据索引和追加数据索引重建一段以年龄排序的索引。如果需要对教师数据集进行查询,就是分别对现有数据索引查询和追加数据索引查询,然后对查询结果进行合并。通过流程图和实施例可以实现本专利技术,实施例是用伪代码和普通语言表述的,代表本专利技术可以用任何代码任何语言实现,都是出于本专利技术专利的保护范围里面。本文档来自技高网
...

【技术保护点】
1.一种应对可追加数据的索引方法,步骤如下:a、在系统中,数据集里维护了两段排序索引;b、其中一段是数据集现有数据的索引;c、另一段是数据集后追加数据的索引;d、追加数据时只修改第二段追加数据排序索引,第一段现有数据排序索引不动;e、数据集中后追加数据在追加索引中累积达到设定的阈值时,重新生成索引数据把两段排序索引合并成一段排序索引。

【技术特征摘要】
1.一种应对可追加数据的索引方法,步骤如下:a、在系统中,数据集里维护了两段排序索引;b、其中一段是数据集现有数据的索引;c、另一段是数据集后追加数据的索引;d、追加数据时只修改第二段追加数据排序索引,第一段现有数据排序索引不动;e、数据集中后追加数据在追加索引中累积达到设定的阈值时,重新生成索引数据把两段排序索引合并成一段排序索引。2.如权利要求1所述的一种应对可追加数据的索引方法,其特征在于,当使用索引数据查询数据时,把两段索引的查询结果进行合并就能得到所有满足条件的查询。3.如权利要求1所...

【专利技术属性】
技术研发人员:蒋步星
申请(专利权)人:北京润乾信息系统技术有限公司
类型:发明
国别省市:北京,11

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

1