CN104424267A - 一种索引数据插入方法及系统 - Google Patents
一种索引数据插入方法及系统 Download PDFInfo
- Publication number
- CN104424267A CN104424267A CN201310385039.5A CN201310385039A CN104424267A CN 104424267 A CN104424267 A CN 104424267A CN 201310385039 A CN201310385039 A CN 201310385039A CN 104424267 A CN104424267 A CN 104424267A
- Authority
- CN
- China
- Prior art keywords
- subindex
- index
- target
- index data
- threshold value
- 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.)
- Pending
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及信息管理领域,公开了一种索引数据插入方法及系统。本发明首先获取大小达到第一设定阈值的目标子索引;然后将所述目标子索引融合到所述主索引中。本发明通过将子索引整体性插入主索引,大大减少了数据结构的破坏,便于数据的查询和其他操作;从子索引的最低节点层中的最小节点向最大节点扫描,能够保证子索引中的索引数据的完整性,同时也能提高数据查询效率,保证将子索引融合到主索引后不破坏主索引的架构。
Description
技术领域
本发明涉及信息管理技术领域,特别涉及一种索引数据插入方法及系统。
背景技术
平衡树(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)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (13)
1.一种索引数据插入方法,应用于包含主索引的平衡树状的数据结构,其特征在于,所述索引数据插入方法包括以下步骤:
获取大小达到第一设定阈值的目标子索引;
将所述目标子索引融合到所述主索引中。
2.如权利要求1所述的索引数据插入方法,其特征在于,所述目标子索引的构造方法为:
在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
3.如权利要求2所述的索引数据插入方法,其特征在于,所述构造所述目标子索引,并将待添加的索引数据插入所述目标子索引具体为:
构造含有设定个节点层的目标子索引;
将被查询的频率最高的待添加的索引数据放入所述目标子索引的最高节点层的节点中;将被查询的频率最低的待添加的索引数据放入所述目标子索引的最低节点层的节点中,将被查询的频率介于最高频率和最低频率之间的待添加的索引数据按被查询的频率的大小放入所述最高节点层和所述最低节点层之间的节点层的节点中。
4.如权利要求3所述的索引数据插入方法,其特征在于,所述将所述目标子索引融合到所述主索引中具体为:
从所述达到所述第一设定阈值的所述目标子索引的最低节点层中的最小节点向最大节点扫描,复制扫描到的所述最小节点到所述最大节点的路径上的待添加的索引数据,按设定方法将所述路径上的待添加的索引数据融合到所述主索引中。
5.如权利要求4所述的索引数据插入方法,其特征在于,所述设定方法为平衡树数据插入法。
6.如权利要求4所述的索引数据插入方法,其特征在于,所述按设定方法将所述路径上的待添加的索引数据融合到所述主索引中之后还包括:
删除所述达到所述第一设定阈值的所述目标子索引。
7.如权利要求1所述的索引数据插入方法,其特征在于,所述融合操作的隔离级别为可反复读操作。
8.如权利要求2所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:
若所述主索引的大小没有达到所述第二设定阈值,则将待添加的索引数据插入所述主索引。
9.如权利要求1所述的索引数据插入方法,其特征在于,所述索引数据插入方法还包括:
若所述目标子索引的大小没有达到所述第一设定阈值,则将待添加的索引数据插入所述子索引。
10.一种索引数据插入系统,应用于包含主索引的平衡树状的数据结构,其特征在于,所述索引数据插入系统包括:
目标子索引获取单元,用于获取大小达到第一设定阈值的目标子索引;
索引融合单元,用于将所述目标子索引融合到所述主索引中。
11.如权利要求10所述的索引数据插入系统,其特征在于,所述目标子索引获取单元包括:
第一目标子索引构建单元,用于在所述主索引的大小达到第二设定阈值时构造所述目标子索引,并将待添加的索引数据插入所述目标子索引。
12.如权利要求10所述的索引数据插入系统,其特征在于,还包括:
第二目标子索引构建单元,用于在所述目标子索引的大小达到第一设定阈值时,构造下一个目标子索引。
13.如权利要求10所述的索引数据插入系统,其特征在于,还包括:
阈值查询单元,用于查询所述主索引的大小是否达到第二设定阈值或查询所述目标子索引的大小是否达到第一设定阈值,并将查询结果发送给所述第一目标子索引构建单元、所述第二目标子索引构建单元或所述索引融合单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385039.5A CN104424267A (zh) | 2013-08-29 | 2013-08-29 | 一种索引数据插入方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310385039.5A CN104424267A (zh) | 2013-08-29 | 2013-08-29 | 一种索引数据插入方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104424267A true CN104424267A (zh) | 2015-03-18 |
Family
ID=52973251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310385039.5A Pending CN104424267A (zh) | 2013-08-29 | 2013-08-29 | 一种索引数据插入方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104424267A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069185A (zh) * | 2020-09-10 | 2020-12-11 | 工银科技有限公司 | 索引构建方法、装置、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080091B2 (en) * | 2002-05-09 | 2006-07-18 | Oracle International Corporation | Inverted index system and method for numeric attributes |
CN1979469A (zh) * | 2005-11-29 | 2007-06-13 | 国际商业机器公司 | 索引及其扩展和查询方法 |
CN101136016A (zh) * | 2006-09-01 | 2008-03-05 | 北大方正集团有限公司 | 一种全文检索系统的索引在线更新方法 |
CN101295323A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种用于索引更新的处理方法和系统 |
CN102087646A (zh) * | 2009-12-07 | 2011-06-08 | 北大方正集团有限公司 | 一种索引建立方法及装置 |
-
2013
- 2013-08-29 CN CN201310385039.5A patent/CN104424267A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080091B2 (en) * | 2002-05-09 | 2006-07-18 | Oracle International Corporation | Inverted index system and method for numeric attributes |
CN1979469A (zh) * | 2005-11-29 | 2007-06-13 | 国际商业机器公司 | 索引及其扩展和查询方法 |
CN101136016A (zh) * | 2006-09-01 | 2008-03-05 | 北大方正集团有限公司 | 一种全文检索系统的索引在线更新方法 |
CN101295323A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种用于索引更新的处理方法和系统 |
CN102087646A (zh) * | 2009-12-07 | 2011-06-08 | 北大方正集团有限公司 | 一种索引建立方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069185A (zh) * | 2020-09-10 | 2020-12-11 | 工银科技有限公司 | 索引构建方法、装置、电子设备和介质 |
CN112069185B (zh) * | 2020-09-10 | 2024-04-23 | 中国工商银行股份有限公司 | 索引构建方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740036B2 (en) | Unified architecture for hybrid database storage using fragments | |
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
US9830109B2 (en) | Materializing data from an in-memory array to an on-disk page structure | |
US10725987B2 (en) | Forced ordering of a dictionary storing row identifier values | |
US9009439B2 (en) | On-disk operations on fragments to support huge data sizes | |
US11275759B2 (en) | Data storage method and apparatus, server, and storage medium | |
US8868512B2 (en) | Logging scheme for column-oriented in-memory databases | |
US8719237B2 (en) | Method and apparatus for deleting duplicate data | |
CN106462592A (zh) | 优化对索引的多版本支持的系统和方法 | |
US9348833B2 (en) | Consolidation for updated/deleted records in old fragments | |
CN105630409A (zh) | 使用存储器内阵列和盘上页结构的双重数据存储 | |
US8954407B2 (en) | System and method for partially deferred index maintenance | |
US9734173B2 (en) | Assignment of data temperatures in a fragmented data set | |
KR101549220B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
EP2778964B1 (en) | Hierarchical indices | |
US10558636B2 (en) | Index page with latch-free access | |
US9400817B2 (en) | In-place index repair | |
CN104424267A (zh) | 一种索引数据插入方法及系统 | |
KR20200098971A (ko) | 싱글-레벨 기반의 데이터 저장 장치 및 방법 | |
KR102013839B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
Cai et al. | An efficient block structure for incremental inverted indexing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150318 |