一种索引数据插入方法及系统.pdf

上传人:Y0****01 文档编号:4036004 上传时间:2018-08-12 格式:PDF 页数:13 大小:814.52KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310385039.5

申请日:

2013.08.29

公开号:

CN104424267A

公开日:

2015.03.18

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/30申请公布日:20150318|||实质审查的生效IPC(主分类):G06F17/30申请日:20130829|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北大方正集团有限公司; 方正信息产业控股有限公司; 上海方正数字出版技术有限公司

发明人:

郑程光; 孙伟丰; 罗正海; 李浩; 何奇; 刘慧娟; 王浩; 郭春庭

地址:

100871北京市海淀区成府路298号中关村方正大厦808室

优先权:

专利代理机构:

北京银龙知识产权代理有限公司11243

代理人:

许静; 黄灿

PDF下载: PDF下载
内容摘要

本发明涉及信息管理领域,公开了一种索引数据插入方法及系统。本发明首先获取大小达到第一设定阈值的目标子索引;然后将所述目标子索引融合到所述主索引中。本发明通过将子索引整体性插入主索引,大大减少了数据结构的破坏,便于数据的查询和其他操作;从子索引的最低节点层中的最小节点向最大节点扫描,能够保证子索引中的索引数据的完整性,同时也能提高数据查询效率,保证将子索引融合到主索引后不破坏主索引的架构。

权利要求书

权利要求书
1.  一种索引数据插入方法,应用于包含主索引的平衡树状的数据结构,其特征在于,所述索引数据插入方法包括以下步骤:
获取大小达到第一设定阈值的目标子索引;
将所述目标子索引融合到所述主索引中。

2.  如权利要求1所述的索引数据插入方法,其特征在于,所述目标子索引的构造方法为:
在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。

3.  如权利要求2所述的索引数据插入方法,其特征在于,所述构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:
构造含有设定个节点层的目标子索引;
将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中。

4.  如权利要求3所述的索引数据插入方法,其特征在于,所述将所述目标子索引融合到所述主索引中具体为:
从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中。

5.  如权利要求4所述的索引数据插入方法,其特征在于,所述设定方法为平衡树数据插入法。

6.  如权利要求4所述的索引数据插入方法,其特征在于,所述按设定方法将所述路径上的待添加的索引数据融合到所述主索引中之后还包括:
删除所述达到所述第一设定阈值的所述目标子索引。

7.  如权利要求1所述的索引数据插入方法,其特征在于,所述融合操作的隔离级别为可反复读操作。

8.  如权利要求2所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:
若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。

9.  如权利要求1所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:
若所述目标子索引的大小没有达到所述第一设定阈值,则将待添加的索引数据插入所述子索引。

10.  一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,其特征在于,所述索引数据插入系统包括:
目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;
索引融合单元,用于将所述目标子索引融合到所述主索引中。

11.  如权利要求10所述的索引数据插入系统,其特征在于,所述目标子索引获取单元包括:
第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。

12.  如权利要求10所述的索引数据插入系统,其特征在于,还包括:
第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。

13.  如权利要求10所述的索引数据插入系统,其特征在于,还包括:
阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。

说明书

说明书一种索引数据插入方法及系统
技术领域
本发明涉及信息管理技术领域,特别涉及一种索引数据插入方法及系统。
背景技术
平衡树(b+tree)是关系数据库最常用的索引数据结构,它的优点非常明显:非常短的查询路径;很小的读写磁盘;可提供范围查找。但是在数据量很大的时候,平衡树往往变得低效。
数据量大我们很直观的一个理解可以是内存和数据总量的比值很小,由于平衡树通常以一个页面(4-8k)为一个节点,该节点内部可容纳指向下一级节点的指针的数目非常大,所以通常来说平衡树的层数是很低的。假设一个值和指针占用的空间为4+4=8byte来估算,页面为8k的平衡树的一个中间节点可以指向近1000个下一级的节点,更直观的来说如果平衡树的叶节点的总大小有1t,那么所有中间节点的大小约等于1.11g。也就是说平衡树的叶节点的数目(大小)要远远大于中间节点的数目(大小)。
根据平衡树随机查询的特点,我们可以认为:由于平衡树的中间节点被重复访问的几率是很大的,并且数据量不像叶节点那么大,所以我们认为大部分的中间节点可以常驻于内存中,大部分的叶节点被重复访问的几率小于中间节点,所以我们可以认为大部分的叶节点都在磁盘上。根据平衡树的查询路径的特点:从根节点经过每一层的一个中间节点达到叶节点后,根据查找的范围,沿着叶节点之间的指针往一个方向遍历。由于叶节点大部分存在于磁盘上,在叶节点链表上的遍历产生的大量的读写磁盘,这种读写磁盘是不可避免的,为了提高读写磁盘的效率,我们只能保证叶节点的读写磁盘尽可能为顺序读写磁盘。
根据平衡树构建的算法,一个平衡树在建立的初期,叶节点有着很好的物 理连续性。但是平衡树在经历了大量而且随机的插入和更新后,中间节点大量分裂后,数据的物理连续性遭到了很大的破坏。大大影响了数据的查询效率。
同时数据量越来越大的时候,平衡树的层次也变得越来越深,插入的时候会涉及到很多层次节点的层级分裂,插入的性能也变的越来越慢。
发明内容
本发明提供一种索引数据插入方法及系统,用以解决现有索引数据插入方法在大量随机插入和更新后出现的数据结构破坏、查询效率低等不足。
为解决上述技术问题,本发明提供了一种索引数据插入方法,应用于包含主索引的平衡树状的数据结构,所述索引数据插入方法包括以下步骤:
获取大小达到第一设定阈值的目标子索引;
将所述目标子索引融合到所述主索引中。
进一步地,所述目标子索引的构造方法为:
在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
进一步地,所述构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:
构造含有设定个节点层的目标子索引;
将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中。
进一步地,所述将所述目标子索引融合到所述主索引中具体为:
从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中。
进一步地,所述设定方法为平衡树数据插入法。
进一步地,所述按设定方法将所述路径上的待添加的索引数据融合到所述主索引中之后还包括:
删除所述达到所述第一设定阈值的所述目标子索引。
进一步地,所述融合操作的隔离级别为可反复读操作。
进一步地,所述索引数据插入方法还包括:
若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。
进一步地,所述索引数据插入方法还包括:
若所述目标子索引的大小没有达到所述第一设定阈值,则将索引数据插入所述子索引。
本发明还提供了一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,所述索引数据插入系统包括:
目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;
索引融合单元,用于将所述目标子索引融合到所述主索引中。
进一步地,所述目标子索引获取单元包括:
第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
进一步地,还包括:
第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。
进一步地,还包括:
阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。
和现有技术相比,本发明的上述技术方案的有益效果如下:
上述技术方案中,通过将子索引整体性插入主索引,大大减少了对数据结构的破坏,便于数据的查询和其他操作;保证了主索引的层次固定和结构稳定。
附图说明
图1表示本发明实施例1的流程图;
图2表示本发明实施例2的结构图;
图3表示本发明实施例3的结构图;
图4表示本发明实施例4的结构图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
为了解决现有索引数据插入方法在大量随机插入和更新后出现的数据结构破坏、查询效率低等不足,本发明提供了索引数据插入方法及系统。
实施例1
本发明提供了一种索引数据插入方法,该方法应用各种数据管理系统,如oracle、DB2、sybase、informix、SQL Server等。更确切地,是应用于包含主索引的平衡树状的数据结构。对于新增加的数据,多数现有方法是直接在主索引中进行插入操作,当需要删除数据时,直接从主索引中删除。经过大量的插入和删除操作后,使得数据的连贯性遭到破坏。使得对数据进行的插入、删除、查询或其他操作越来越慢,甚至出现操作无法实现对应的功能。为此,所以本发明提出了一种数据插入方法,该方法包括以下步骤:
S1:获取大小达到第一设定阈值的目标子索引;
S2:将所述目标子索引融合到所述主索引中。本发明通过将目标子索引整体性插入主索引,大大减少了数据结构的破坏,便于数据的查询和其他操作。本实施例的流程图如图1所示。
为了实现上述步骤,首先要考虑的是如何构建目标子索引。目标子索引是为了对要插入的待添加的索引数据进行缓冲的,即,将要插入的待添加的索引数据先插入目标子索引,然后再将目标子索引融入主索引。这样就减少了插入主索引的次数,保证了主索引的结构稳定。
因此,步骤S1具体包括:
S11:在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。
本发明首先判断所述主索引的大小,优先保证主索引的层次固定和结构稳定。在所述主索引的大小达到第二设定阈值时才构建目标子索引,既保证了所述主索引的结构,又能使新增加的数据进行有序的平衡树状排列。若主索引没有到达第二设定阈值,则直接将数据插入主索引,这时插入数据不影响主索引的结构,同时能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。
另外,目标子索引一定要比主索引小,以保证目标子索引插入主索引不破坏主索引的结构。所以,构建目标子索引先要设定目标子索引的大小,然后要考虑目标子索引的结构。为了方便起见,将目标子索引的结构设置为和主索引相同的结构。本发明构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:
构造含有设定个节点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引具有完整的数据查询功能。
可见,目标子索引和主索引同为平衡树状的数据结构,便于融合操纵及数据的连贯性。
当目标子索引的大小达到第一设定阈值时,就要考虑如何将目标子索引融合到主索引。将所述目标子索引融入主索引有多种方式,考虑到主索引的结构稳定等因素,本发明采用如下方法:
S12:将所述目标子索引融合到所述主索引中的方式包括:
(1)在所述目标子索引的大小达到所述第一设定阈值时,将所述目标子索引融合到所述主索引;
(2)将设定数量的达到所述第一设定阈值的所述目标子索引同时融合到所述主索引。
由上述描述可知,将达到第一设定阈值的所述目标子索引融入主索引,保证了主索引结构的稳定,减少了融入主索引的次数,还能使得融入的数据保证连贯性。将一个目标子索引单独融合到主索引中能减少目标子索引占用的空间,降低了对硬件的要求,使得每次融入操作的数据处理量小,降低了硬件负荷,不影响系统的运行;将一定数量的目标子索引整体融合到主索引中可以进一步保证主索引的结构稳定。
此外,若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添加的索引数据插入所述目标子索引,直到目标子索引达到第一设定阈值后才建立新的目标子索引,并将数据插入新的目标子索引。这样就保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。
上述完成了目标子索引的构建和融合方式的确定问题,然后要考虑的就是具体的融合待添加的索引数据的问题。由上述可知,主索引和目标子索引都采用了平衡树状的数据结构。该结构有自身的特点,就是能够找到一条数据路径,使得最低节点层的节点和最高节点层的节点联系起来成为一条数据链。因此,本发明融合过程如下:
步骤S2中,所述将所述目标子索引融合到所述主索引中具体为:
从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。
本步骤的所述设定方法为平衡树数据插入法,该方法能够最大限度地利用了目标子索引和主索引的数据特性,保证了融合过程的成功和有效。
在完成目标子索引融入主索引的操作后,还要删除达到所述第一设定阈值 的所述目标子索引,这样既节省了空间,又减少了数据出错的可能性。
另外,本发明的融合操作的隔离级别为可反复读操作。可反复读操作能够保证同一条数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。
实施例2
对应实施例1,本实施例提供了一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,所述索引数据插入系统包括:
(1)目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;
(2)阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。
其中,目标子索引获取单元又包括:
(11)第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
(12)索引融合单元,用于将所述目标子索引融合到所述主索引中。
本实施例的结构图如图2所示。索引数据插入系统的具体运行过程如下:
首先,通过阈值查询单元查询主索引的大小,若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引,能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。
当查询结果显示主索引的大小达到第二设定阈值时,通过第一目标子索引构建单元构造含有设定个节点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点 中,使得目标子索引具有完整的数据查询功能。
上述待添加的索引数据在放入目标子索引之前,都要经阈值查询单元查看当前目标子索引的大小是否达到第一设定阈值。若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添加的索引数据插入所述目标子索引,保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。当目标子索引的大小达到第一设定阈值时,将目标子索引直接通过所述索引融合单元融合到主索引中,然后删除该目标子索引,通过第一目标子索引构建单元重新构建一个新的目标子索引,目标子索引的结构和放入数据的方式和上述相同。将一个目标子索引单独融合到主索引中能够减少目标子索引占用的空间。
最后,索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。
融合操作的隔离级别为可反复读操作,能够保证同一条待添加的索引数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引,这样既节省了空间,又减少了数据出错的可能性。
实施例3
本实施例与实施例2基于同一发明构思,主要区别在于多提供了第二子索引构建单元,以改变子索引融入主索引的方式。本实施例包括:
(1)目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;
(2)阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。
其中,目标子索引获取单元又包括:
(11)第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
(12)第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。
(13)索引融合单元,用于将所述目标子索引融合到所述主索引中。本实施例的结构图如图3所示。索引数据插入系统的具体运行过程如下:
首先,通过阈值查询单元查询主索引的大小,若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引,能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。
当查询结果显示主索引的大小达到第二设定阈值时,通过第一目标子索引构建单元构造含有设定个节点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引具有完整的数据查询功能。
上述待添加的索引数据在放入目标子索引之前,都要经阈值查询单元查看当前目标子索引的大小是否达到第一设定阈值。若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添加的索引数据插入所述目标子索引,保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。当目标子索引的大小达到第一设定阈值时,先不把目标子索引直接通过所述索引融合单元融合到主索引中;而是通过第二目标子索引构建单元构造下一个目标子索引,等达到第一设定阈值的目标子索引够一定数量后整体性融合到主索引中,将一定数量的目标子索引整体融合到主索引中可以进一步保证主索引的结构稳定。
最后,索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目 标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。
融合操作的隔离级别为可反复读操作,能够保证同一条待添加的索引数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引,这样既节省了空间,又减少了数据出错的可能性。
实施例4
以下通过一个具体的场景对本发明进行说明。本实施例的结构图如图4所示。
数据插入是要插入“堆”数据,“堆”数据包括基础数据3和增量数据4两部分。基础数据3对应主索引1;增量数据4对应目标子索引2。
插入时,首先通过阈值查询单元查询主索引1是否达到第二设定阈值,阈值可以设定为1G;若没有达到第二设定阈值,则将数据直接插入主索引1中;若达到第二设定阈值,则通过第一目标子索引构建单元在一块数据空白区构建一个目标子索引2,目标子索引2的大小为设定值(如8M)。目标子索引2应含有设定个节点层,将被查询的频率最高的待添加的索引数据放入所述目标子索引2的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引2的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引2含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引2具有完整的数据查询功能。
当目标子索引2的大小达到第一设定阈值时,可以将达到第一设定阈值的目标子索引2通过索引融合单元直接融合到主索引1中;也可以继续通过第二目标子索引构建单元构造下一个目标子索引2,等达到第一设定阈值的目标子索引2够一定数量后,再一起通过索引融合单元直接融合到主索引1中。融合时, 是先复制要融合的目标子索引2中的待添加的索引数据,然后将复制的待添加的索引数据插入主索引1,之后,要将融合后的目标子索引2删除,以节约空间。
索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目标子索引2的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所述路径上的待添加的索引数据融合到所述主索引1中,能够保证目标子索引2中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引2融合到主索引1后不破坏主索引1的架构。
融合操作的隔离级别为可反复读操作,能够保证同一条数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引2,这样既节省了空间,又减少了数据出错的可能性。
此外,通过上述待添加的索引数据的插入,还配有相应的其他数据处理方式,如:
1、数据查询:
数据查询要依次扫描主索引1和所有的目标子索引2,将返回满足数据查询要求的查询结果,数据查询采用的是快照技术。
2、数据更新:
数据更新时,首先要进行数据查询,查到要插入的数据位置后,通过存储引擎的多版本并发控制方式将数据插入到所述数据位置。
3、数据删除:
首先通过数据查询步骤找到指定数据,然后标记删除的过程,最后将数据删除。
4、定时融合
除了上述融合过程提到的单个融合和批量融合方式外,还可以定时将目标子索引2融合到主索引1中。每隔设定的时间间隔,将达到第一设定阈值的目标子索引2融合到主索引1中。此时,若在融合时刻没有达到第一设定阈值的目标子索引2,则等待下一间隔到来时继续融合操作;若有达到第一设定阈值的目标子索引2,则不论目标子索引2的数量有多少,通过索引融合单元将全部都融 合到主索引1中。若融合某个目标子索引2的过程中出现抛出异常,则先不融合该目标子索引2,继续融合其他目标子索引2,等下一轮融合过程来临时继续融合该目标子索引2。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

一种索引数据插入方法及系统.pdf_第1页
第1页 / 共13页
一种索引数据插入方法及系统.pdf_第2页
第2页 / 共13页
一种索引数据插入方法及系统.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种索引数据插入方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种索引数据插入方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310385039.5(22)申请日 2013.08.29G06F 17/30(2006.01)(71)申请人北大方正集团有限公司地址 100871 北京市海淀区成府路298号中关村方正大厦808室申请人方正信息产业控股有限公司上海方正数字出版技术有限公司(72)发明人郑程光 孙伟丰 罗正海 李浩何奇 刘慧娟 王浩 郭春庭(74)专利代理机构北京银龙知识产权代理有限公司 11243代理人许静 黄灿(54) 发明名称一种索引数据插入方法及系统(57) 摘要本发明涉及信息管理领域,公开了一种索引数据插入方法及系统。本发明首先获取大小达到。

2、第一设定阈值的目标子索引;然后将所述目标子索引融合到所述主索引中。本发明通过将子索引整体性插入主索引,大大减少了数据结构的破坏,便于数据的查询和其他操作;从子索引的最低节点层中的最小节点向最大节点扫描,能够保证子索引中的索引数据的完整性,同时也能提高数据查询效率,保证将子索引融合到主索引后不破坏主索引的架构。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书8页 附图2页(10)申请公布号 CN 104424267 A(43)申请公布日 2015.03.18CN 104424267 A1/2页21.一种索引数据插入方法,应用于包含主索引的平衡树。

3、状的数据结构,其特征在于,所述索引数据插入方法包括以下步骤:获取大小达到第一设定阈值的目标子索引;将所述目标子索引融合到所述主索引中。2.如权利要求1所述的索引数据插入方法,其特征在于,所述目标子索引的构造方法为:在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。3.如权利要求2所述的索引数据插入方法,其特征在于,所述构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:构造含有设定个节点层的目标子索引;将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最。

4、低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中。4.如权利要求3所述的索引数据插入方法,其特征在于,所述将所述目标子索引融合到所述主索引中具体为:从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中。5.如权利要求4所述的索引数据插入方法,其特征在于,所述设定方法为平衡树数据插入法。6.如权利要求4所述的索引数据插入方法,其特征在于,所述按。

5、设定方法将所述路径上的待添加的索引数据融合到所述主索引中之后还包括:删除所述达到所述第一设定阈值的所述目标子索引。7.如权利要求1所述的索引数据插入方法,其特征在于,所述融合操作的隔离级别为可反复读操作。8.如权利要求2所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。9.如权利要求1所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:若所述目标子索引的大小没有达到所述第一设定阈值,则将待添加的索引数据插入所述子索引。10.一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,其特征。

6、在于,所述索引数据插入系统包括:目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;索引融合单元,用于将所述目标子索引融合到所述主索引中。权 利 要 求 书CN 104424267 A2/2页311.如权利要求10所述的索引数据插入系统,其特征在于,所述目标子索引获取单元包括:第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。12.如权利要求10所述的索引数据插入系统,其特征在于,还包括:第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。13.如权利要求10所述的索引数。

7、据插入系统,其特征在于,还包括:阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。权 利 要 求 书CN 104424267 A1/8页4一种索引数据插入方法及系统技术领域0001 本发明涉及信息管理技术领域,特别涉及一种索引数据插入方法及系统。背景技术0002 平衡树(b+tree)是关系数据库最常用的索引数据结构,它的优点非常明显:非常短的查询路径;很小的读写磁盘;可提供范围查找。但是在数据量很大的时候,平衡树往往变得低效。0003 数据量大我。

8、们很直观的一个理解可以是内存和数据总量的比值很小,由于平衡树通常以一个页面(4-8k)为一个节点,该节点内部可容纳指向下一级节点的指针的数目非常大,所以通常来说平衡树的层数是很低的。假设一个值和指针占用的空间为4+4=8byte来估算,页面为8k的平衡树的一个中间节点可以指向近1000个下一级的节点,更直观的来说如果平衡树的叶节点的总大小有1t,那么所有中间节点的大小约等于1.11g。也就是说平衡树的叶节点的数目(大小)要远远大于中间节点的数目(大小)。0004 根据平衡树随机查询的特点,我们可以认为:由于平衡树的中间节点被重复访问的几率是很大的,并且数据量不像叶节点那么大,所以我们认为大部分。

9、的中间节点可以常驻于内存中,大部分的叶节点被重复访问的几率小于中间节点,所以我们可以认为大部分的叶节点都在磁盘上。根据平衡树的查询路径的特点:从根节点经过每一层的一个中间节点达到叶节点后,根据查找的范围,沿着叶节点之间的指针往一个方向遍历。由于叶节点大部分存在于磁盘上,在叶节点链表上的遍历产生的大量的读写磁盘,这种读写磁盘是不可避免的,为了提高读写磁盘的效率,我们只能保证叶节点的读写磁盘尽可能为顺序读写磁盘。0005 根据平衡树构建的算法,一个平衡树在建立的初期,叶节点有着很好的物理连续性。但是平衡树在经历了大量而且随机的插入和更新后,中间节点大量分裂后,数据的物理连续性遭到了很大的破坏。大大。

10、影响了数据的查询效率。0006 同时数据量越来越大的时候,平衡树的层次也变得越来越深,插入的时候会涉及到很多层次节点的层级分裂,插入的性能也变的越来越慢。发明内容0007 本发明提供一种索引数据插入方法及系统,用以解决现有索引数据插入方法在大量随机插入和更新后出现的数据结构破坏、查询效率低等不足。0008 为解决上述技术问题,本发明提供了一种索引数据插入方法,应用于包含主索引的平衡树状的数据结构,所述索引数据插入方法包括以下步骤:0009 获取大小达到第一设定阈值的目标子索引;0010 将所述目标子索引融合到所述主索引中。0011 进一步地,所述目标子索引的构造方法为:0012 在所述主索引的。

11、大小达到第二设定阈值时构造所述目标子索引,并将待添加的索说 明 书CN 104424267 A2/8页5引数据插入所述目标子索引。0013 进一步地,所述构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:0014 构造含有设定个节点层的目标子索引;0015 将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中。0016 进一步地,所述将所述目标子索引。

12、融合到所述主索引中具体为:0017 从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中。0018 进一步地,所述设定方法为平衡树数据插入法。0019 进一步地,所述按设定方法将所述路径上的待添加的索引数据融合到所述主索引中之后还包括:0020 删除所述达到所述第一设定阈值的所述目标子索引。0021 进一步地,所述融合操作的隔离级别为可反复读操作。0022 进一步地,所述索引数据插入方法还包括:0023 若所述主索引的大小没有达到所述第二设定。

13、阈值,则将待添加的索引数据插入所述主索引。0024 进一步地,所述索引数据插入方法还包括:0025 若所述目标子索引的大小没有达到所述第一设定阈值,则将索引数据插入所述子索引。0026 本发明还提供了一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,所述索引数据插入系统包括:0027 目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;0028 索引融合单元,用于将所述目标子索引融合到所述主索引中。0029 进一步地,所述目标子索引获取单元包括:0030 第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索。

14、引。0031 进一步地,还包括:0032 第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。0033 进一步地,还包括:0034 阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。0035 和现有技术相比,本发明的上述技术方案的有益效果如下:0036 上述技术方案中,通过将子索引整体性插入主索引,大大减少了对数据结构的破说 明 书CN 104424267 A3/8页6坏,便于数据的查询和其他操作;保证了主索。

15、引的层次固定和结构稳定。附图说明0037 图1表示本发明实施例1的流程图;0038 图2表示本发明实施例2的结构图;0039 图3表示本发明实施例3的结构图;0040 图4表示本发明实施例4的结构图。具体实施方式0041 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。0042 为了解决现有索引数据插入方法在大量随机插入和更新后出现的数据结构破坏、查询效率低等不足,本发明提供了索引数据插入方法及系统。0043 实施例10044 本发明提供了一种索引数据插入方法,该方法应用各种数据管理系统,如oracle、DB2、sybase、i。

16、nformix、SQL Server等。更确切地,是应用于包含主索引的平衡树状的数据结构。对于新增加的数据,多数现有方法是直接在主索引中进行插入操作,当需要删除数据时,直接从主索引中删除。经过大量的插入和删除操作后,使得数据的连贯性遭到破坏。使得对数据进行的插入、删除、查询或其他操作越来越慢,甚至出现操作无法实现对应的功能。为此,所以本发明提出了一种数据插入方法,该方法包括以下步骤:0045 S1:获取大小达到第一设定阈值的目标子索引;0046 S2:将所述目标子索引融合到所述主索引中。本发明通过将目标子索引整体性插入主索引,大大减少了数据结构的破坏,便于数据的查询和其他操作。本实施例的流程图。

17、如图1所示。0047 为了实现上述步骤,首先要考虑的是如何构建目标子索引。目标子索引是为了对要插入的待添加的索引数据进行缓冲的,即,将要插入的待添加的索引数据先插入目标子索引,然后再将目标子索引融入主索引。这样就减少了插入主索引的次数,保证了主索引的结构稳定。0048 因此,步骤S1具体包括:0049 S11:在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。0050 本发明首先判断所述主索引的大小,优先保证主索引的层次固定和结构稳定。在所述主索引的大小达到第二设定阈值。

18、时才构建目标子索引,既保证了所述主索引的结构,又能使新增加的数据进行有序的平衡树状排列。若主索引没有到达第二设定阈值,则直接将数据插入主索引,这时插入数据不影响主索引的结构,同时能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。0051 另外,目标子索引一定要比主索引小,以保证目标子索引插入主索引不破坏主索引的结构。所以,构建目标子索引先要设定目标子索引的大小,然后要考虑目标子索引的结说 明 书CN 104424267 A4/8页7构。为了方便起见,将目标子索引的结构设置为和主索引相同的结构。本发明构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:0052 构造。

19、含有设定个节点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引具有完整的数据查询功能。0053 可见,目标子索引和主索引同为平衡树状的数据结构,便于融合操纵及数据的连贯性。0054 当目标子索引的大小达到第一设定阈值时,就要考虑如何将目标子索引融合到。

20、主索引。将所述目标子索引融入主索引有多种方式,考虑到主索引的结构稳定等因素,本发明采用如下方法:0055 S12:将所述目标子索引融合到所述主索引中的方式包括:0056 (1)在所述目标子索引的大小达到所述第一设定阈值时,将所述目标子索引融合到所述主索引;0057 (2)将设定数量的达到所述第一设定阈值的所述目标子索引同时融合到所述主索引。0058 由上述描述可知,将达到第一设定阈值的所述目标子索引融入主索引,保证了主索引结构的稳定,减少了融入主索引的次数,还能使得融入的数据保证连贯性。将一个目标子索引单独融合到主索引中能减少目标子索引占用的空间,降低了对硬件的要求,使得每次融入操作的数据处理。

21、量小,降低了硬件负荷,不影响系统的运行;将一定数量的目标子索引整体融合到主索引中可以进一步保证主索引的结构稳定。0059 此外,若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添加的索引数据插入所述目标子索引,直到目标子索引达到第一设定阈值后才建立新的目标子索引,并将数据插入新的目标子索引。这样就保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。0060 上述完成了目标子索引的构建和融合方式的确定问题,然后要考虑的就是具体的融合待添加的索引数据的问题。由上述可知,主索引和目标子索引都采用了平衡树状的数据结构。该结构有自身的特点,就是能够找到一条数据路径,使得。

22、最低节点层的节点和最高节点层的节点联系起来成为一条数据链。因此,本发明融合过程如下:0061 步骤S2中,所述将所述目标子索引融合到所述主索引中具体为:0062 从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。0063 本步骤的所述设定方法为平衡树数据插入法,该方法能够最大限度地利用了目标子索引和主索引的数据特性,。

23、保证了融合过程的成功和有效。说 明 书CN 104424267 A5/8页80064 在完成目标子索引融入主索引的操作后,还要删除达到所述第一设定阈值的所述目标子索引,这样既节省了空间,又减少了数据出错的可能性。0065 另外,本发明的融合操作的隔离级别为可反复读操作。可反复读操作能够保证同一条数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。0066 实施例20067 对应实施例1,本实施例提供了一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,所述索引数据插入系统包括:0068 (1)目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;0069 (2)阈值查询。

24、单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。0070 其中,目标子索引获取单元又包括:0071 (11)第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。0072 (12)索引融合单元,用于将所述目标子索引融合到所述主索引中。0073 本实施例的结构图如图2所示。索引数据插入系统的具体运行过程如下:0074 首先,通过阈值查询单元查询主索引的大小,若所述主索引的大小没有达到所述。

25、第二设定阈值,则将待添加的索引数据插入所述主索引,能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。0075 当查询结果显示主索引的大小达到第二设定阈值时,通过第一目标子索引构建单元构造含有设定个节点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,。

26、使得目标子索引具有完整的数据查询功能。0076 上述待添加的索引数据在放入目标子索引之前,都要经阈值查询单元查看当前目标子索引的大小是否达到第一设定阈值。若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添加的索引数据插入所述目标子索引,保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。当目标子索引的大小达到第一设定阈值时,将目标子索引直接通过所述索引融合单元融合到主索引中,然后删除该目标子索引,通过第一目标子索引构建单元重新构建一个新的目标子索引,目标子索引的结构和放入数据的方式和上述相同。将一个目标子索引单独融合到主索引中能够减少目标子索引占用的空间。00。

27、77 最后,索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。说 明 书CN 104424267 A6/8页90078 融合操作的隔离级别为可反复读操作,能够保证同一条待添加的索引数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引,这样既节。

28、省了空间,又减少了数据出错的可能性。0079 实施例30080 本实施例与实施例2基于同一发明构思,主要区别在于多提供了第二子索引构建单元,以改变子索引融入主索引的方式。本实施例包括:0081 (1)目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;0082 (2)阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。0083 其中,目标子索引获取单元又包括:0084 (11)第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时。

29、构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。0085 (12)第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。0086 (13)索引融合单元,用于将所述目标子索引融合到所述主索引中。本实施例的结构图如图3所示。索引数据插入系统的具体运行过程如下:0087 首先,通过阈值查询单元查询主索引的大小,若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引,能够避免构建不必要的目标子索引,减少了待添加的索引数据的插入过程。0088 当查询结果显示主索引的大小达到第二设定阈值时,通过第一目标子索引构建单元构造含有设定个节。

30、点层的目标子索引,将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引具有完整的数据查询功能。0089 上述待添加的索引数据在放入目标子索引之前,都要经阈值查询单元查看当前目标子索引的大小是否达到第一设定阈值。若所述目标子索引的大小没有达到所述第一设定阈值,则继续将待添。

31、加的索引数据插入所述目标子索引,保证了目标子索引的大小固定,便于目标子索引融合到主索引时融合过程的稳定流畅。当目标子索引的大小达到第一设定阈值时,先不把目标子索引直接通过所述索引融合单元融合到主索引中;而是通过第二目标子索引构建单元构造下一个目标子索引,等达到第一设定阈值的目标子索引够一定数量后整体性融合到主索引中,将一定数量的目标子索引整体融合到主索引中可以进一步保证主索引的结构稳定。0090 最后,索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所。

32、述路径上的待添加的索引数据融合到所述主索引中,能够保证目标子索引中的待添加的索引数据的完整性,同时也能提说 明 书CN 104424267 A7/8页10高数据查询效率,保证将目标子索引融合到主索引后不破坏主索引的架构。0091 融合操作的隔离级别为可反复读操作,能够保证同一条待添加的索引数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引,这样既节省了空间,又减少了数据出错的可能性。0092 实施例40093 以下通过一个具体的场景对本发明进行说明。本实施例的结构图如图4所示。0094 数据插入是要插入“堆”数据,“堆”数据包括基础数据3和增量数据。

33、4两部分。基础数据3对应主索引1;增量数据4对应目标子索引2。0095 插入时,首先通过阈值查询单元查询主索引1是否达到第二设定阈值,阈值可以设定为1G;若没有达到第二设定阈值,则将数据直接插入主索引1中;若达到第二设定阈值,则通过第一目标子索引构建单元在一块数据空白区构建一个目标子索引2,目标子索引2的大小为设定值(如8M)。目标子索引2应含有设定个节点层,将被查询的频率最高的待添加的索引数据放入所述目标子索引2的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引2的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入。

34、所述最高节点层和所述最低节点层之间的节点层的节点中,目标子索引2含有设定个节点层,待添加的索引数据按被查询的频率高低放入节点层的节点中,使得目标子索引2具有完整的数据查询功能。0096 当目标子索引2的大小达到第一设定阈值时,可以将达到第一设定阈值的目标子索引2通过索引融合单元直接融合到主索引1中;也可以继续通过第二目标子索引构建单元构造下一个目标子索引2,等达到第一设定阈值的目标子索引2够一定数量后,再一起通过索引融合单元直接融合到主索引1中。融合时,是先复制要融合的目标子索引2中的待添加的索引数据,然后将复制的待添加的索引数据插入主索引1,之后,要将融合后的目标子索引2删除,以节约空间。0。

35、097 索引融合单元融合过程中,从所述达到所述第一设定阈值的所述目标子索引2的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按平衡树数据插入法将所述路径上的待添加的索引数据融合到所述主索引1中,能够保证目标子索引2中的待添加的索引数据的完整性,同时也能提高数据查询效率,保证将目标子索引2融合到主索引1后不破坏主索引1的架构。0098 融合操作的隔离级别为可反复读操作,能够保证同一条数据被合并操作和用户操作同时访问时,不会导致用户操作的等待。在融合操作完成后,需要删除目标子索引2,这样既节省了空间,又减少了数据出错的可能性。0099 此外,通过上述待添加的索引数据的插入,还配有相应的其他数据处理方式,如:0100 1、数据查询:0101 数据查询要依次扫描主索引1和所有的目标子索引2,将返回满足数据查询要求的查询结果,数据查询采用的是快照技术。0102 2、数据更新:0103 数据更新时,首先要进行数据查询,查到要插入的数据位置后,通过存储引擎的多版本并发控制方式将数据插入到所述数据位置。说 明 书CN 104424267 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1