一种用于灾备客户端的btree块索引技术制造技术

技术编号:24251451 阅读:31 留言:0更新日期:2020-05-22 23:31
本发明专利技术涉及块索引技术领域,且公开了一种用于灾备客户端的btree块索引技术,其特征在于,包括以下部分:将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据。该用于灾备客户端的btree块索引技术,通过将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,本技术定位高效、利用率高且自我平衡,特别适用于高基数字段,定位单条或小范围数据非常高效,适用于灾备客户端。

A BTREE block index technology for disaster recovery client

【技术实现步骤摘要】
一种用于灾备客户端的btree块索引技术
本专利技术涉及块索引
,具体为一种用于灾备客户端的btree块索引技术。
技术介绍
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息,算法索引是指算法集成包或API中算法调用接口按照某种规则排序,算法索引有利于对有关算法和调用,算法索引一般是指将有关算法聚簇在一个模块中。随着社会信息化程度的提高和企事业单位对信息系统依赖性的增强,信息系统的容灾备份成为灾难发生时确保业务连续性和数据可用性的重要手段,而现有灾备客户端所使用的索引技术速度较慢,故而提出一种用于灾备客户端的btree块索引技术。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供了一种用于灾备客户端的btree块索引技术,具备查找快速等优点,解决了现有灾备客户端所使用的索引技术速度较慢的问题。(二)技术方案为实现上述查找快速的目的,本专利技术提供如下技术方案:一种用于灾备客户端的btree块索引技术,包括以下部分:将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,产生的逻辑读的次数也就是树的高度,定义一条记录为一个二元组[key,data],key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据,对于不同的记录,key值互不相同,Root为根节点,branch为分支节点,leaf到最下面一层称为叶子节点,每个节点表示一层,当查找某一数据时先读根节点,再读支节点,最后找到叶子节点,叶子节点会存放indexentry(索引入口),每个索引入口对应一条记录。Indexentry的组成部分:Indexentryentryheader存放一些控制信息。Keycolumnlength某一key的长度。Keycolumnvalue某一个key的值。ROWID指针,具体指向于某一个数据。优选的,所述一个m阶的B树满足以下条件,每个结点至多拥有m棵子树;根结点至少拥有两颗子树(存在子树的情况下);除了根结点以外,其余每个分支结点至少拥有m/2棵子树;所有的叶结点都在同一层上,到达任何一个叶结点最短路径的长度都是相同的;有n棵子树的分支结点则存在n-1个关键字,关键字按照递增次序进行排列;每个非终端节点包含n个关键字信息(P0,P1,…Pn,k1,…kn);关键字数量需要满足ceil(m/2)-1<=n<=m-1;ki(i=1,…n)为关键字,且关键字升序排序;Pi(i=1,…n)为指向子树根节点的指针,P(i-1)指向的子树的所有节点关键字均小于ki,但都大于k(i-1)。优选的,所述模拟查找关键字29的过程,根据根节点找到磁盘块1,读入内存,比较关键字29在区间(17,35),找到磁盘块1的指针P2,根据P2指针找到磁盘块3,读入内存,比较关键字29在区间(26,30),找到磁盘块3的指针P2,根据P2指针找到磁盘块8,读入内存,在磁盘块8中的关键字列表中找到关键字29。优选的,所述删除包括以下情况,如果该结点拥有关键字数量仍然满足B树性质,则不做任何处理,如果该结点在删除关键字以后不满足B树的性质(关键字没有到达ceil(m/2)-1的数量),则需要向兄弟结点借关键字,这有分为兄弟结点的关键字数量是否足够的情况,如果兄弟结点的关键字足够借给该结点,则过程为将父亲结点的关键字下移,兄弟结点的关键字上移,如果兄弟结点的关键字在借出去以后也无法满足情况,即之前兄弟结点的关键字的数量为ceil(m/2)-1,借的一方的关键字数量为ceil(m/2)-2的情况,将该结点合并到兄弟结点中,合并之后的子结点数量少了一个,则需要将父亲结点的关键字下放,如果父亲结点不满足性质,则向上回溯。(三)有益效果与现有技术相比,本专利技术提供了一种用于灾备客户端的btree块索引技术,具备以下有益效果:该用于灾备客户端的btree块索引技术,通过将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,产生的逻辑读的次数也就是树的高度,本技术定位高效、利用率高且自我平衡,特别适用于高基数字段,定位单条或小范围数据非常高效,适用于灾备客户端。具体实施方式下面将结合本专利技术的实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例:一种用于灾备客户端的btree块索引技术,包括以下部分:将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,产生的逻辑读的次数也就是树的高度,定义一条记录为一个二元组[key,data],key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据,对于不同的记录,key值互不相同,Root为根节点,branch为分支节点,leaf到最下面一层称为叶子节点,每个节点表示一层,当查找某一数据时先读根节点,再读支节点,最后找到叶子节点,叶子节点会存放indexentry(索引入口),每个索引入口对应一条记录。Indexentry的组成部分:Indexentryentryheader存放一些控制信息。Keycolumnlength某一key的长度。Keycolumnvalue某一个key的值。ROWID指针,具体指向于某一个数据。一个m阶的B树满足以下条件,每个结点至多拥有m棵子树;根结点至少拥有两颗子树(存在子树的情况下);除了根结点以外,其余每个分支结点至少拥有m/2棵子树;所有的叶结点都在同一层上,到达任何一个叶结点最短路径的长度都是相同的;有n棵子树的分支结点则存在n-1个关键字,关键字按照递增次序进行排列;每个非终端节点包含n个关键字信息(P0,P1,…Pn,k1,…kn);关键字数量需要满足ceil(m/2)-1<=n<=m-1;ki(i=1,…n)为关键字,且关键字升序排序;Pi(i=1,…n)为指向子树根节点的指针,P(i-1)指向的子树的所有节点关键字均小于ki,但都大于k(i-1)。模拟查找关键字29的过程,根据根节点找到磁盘块1,读入内存,比较关键字29在区间(17,35),找到磁盘块1的指针P2,根据P2指针找到磁盘块3,读入内存,比较关键字29在区间(本文档来自技高网...

【技术保护点】
1.一种用于灾备客户端的btree块索引技术,其特征在于,包括以下部分:将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,产生的逻辑读的次数也就是树的高度,定义一条记录为一个二元组[key,data],key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据,对于不同的记录,key值互不相同,Root为根节点,branch为分支节点,leaf到最下面一层称为叶子节点,每个节点表示一层,当查找某一数据时先读根节点,再读支节点,最后找到叶子节点,叶子节点会存放index entry(索引入口),每个索引入口对应一条记录;/nIndex entry的组成部分:/nIndexentry entry header/n存放一些控制信息;/nKey column length/n某一key的长度;/nKey column value/n某一个key的值;/nROWID指针,具体指向于某一个数据。/n

【技术特征摘要】
1.一种用于灾备客户端的btree块索引技术,其特征在于,包括以下部分:将有序的索引列的值和rowid存进Oracle的各个数据块中,形成索引块,存在内存中,这些数据块以树结构的形式组织起来,父节点只记录子节点的键值位置信息,不存具体数据,查询的时候,根据树的结构去查询,产生的逻辑读的次数也就是树的高度,定义一条记录为一个二元组[key,data],key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据,对于不同的记录,key值互不相同,Root为根节点,branch为分支节点,leaf到最下面一层称为叶子节点,每个节点表示一层,当查找某一数据时先读根节点,再读支节点,最后找到叶子节点,叶子节点会存放indexentry(索引入口),每个索引入口对应一条记录;
Indexentry的组成部分:
Indexentryentryheader
存放一些控制信息;
Keycolumnlength
某一key的长度;
Keycolumnvalue
某一个key的值;
ROWID指针,具体指向于某一个数据。


2.根据权利要求1所述的一种用于灾备客户端的btree块索引技术,其特征在于:所述一个m阶的B树满足以下条件,每个结点至多拥有m棵子树;根结点至少拥有两颗子树(存在子树的情况下);除了根结点以外,其余每个分支结点至少拥有m/2棵子树;所有的叶结点都在同一层上,到达任何一个叶结点最短路径的长度都是相同的;有n棵子树的分支结点则存在n-1个关键字,关键字按照递增次序进行排列;每个非终端节点包含n...

【专利技术属性】
技术研发人员:邓篪黄汝林
申请(专利权)人:柏科数据技术深圳股份有限公司
类型:发明
国别省市:广东;44

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

1