一种基于改进红黑树的内存数据库索引方法及系统技术方案

技术编号:23604628 阅读:44 留言:0更新日期:2020-03-28 05:44
本发明专利技术公开了一种基于改进红黑树的内存数据库索引方法,包括以下步骤:S1、创建一改进的红黑树,其节点结构按照标准红黑树创建;S2、创建一头部节点,该头部节点内设有指针且指向所述红黑树索引结构的根节点,指针指向所述红黑树索引结构的第一个叶子节点,以及指针指向所述红黑树索引结构的最后一个叶子节点;S3、创建一双向链表,该链表的元素包括所述红黑树索引结构的所有叶子节点;所述改进的红黑树的节点内均设有指向其左子树、右子树的特定叶子节点的指针;所述红黑树索引结构的叶子节点内设有用于指向数据的指针/地址,或者直接将叶子节点用于存放数据。该索引方法在数据的插入、删除、查找以及遍历操作上的表现都很优秀。

A memory database index method and system based on improved red black tree

【技术实现步骤摘要】
一种基于改进红黑树的内存数据库索引方法及系统
本专利技术属于内存数据库领域,具体为一种基于改进红黑树的内存数据库索引方法及系统。
技术介绍
内存数据库是基于内存的数据库管理系统,其中,数据信息和管理信息保存在内存中,可以为应用层提供极速的数据存取性能。现有基于内存的数据管理组件,如C++标准库的map一般采用标准的红黑树存储数据,标准的红黑树在数据的新增和查找等场景具有比较平衡的性能表现。相应的,常见的还有管理储存于硬盘上的数据的数据库系统,其中,数据信息和管理信息保存在硬盘中。与内存不同的是,硬盘上存放的数据量较大,其数据信息的索引一般采用B+树索引结构。B+树结构的特点在于实现索引的层数相对较少,有利于减少硬盘的访问次数,因此具有较高的查询效率。在数据量较大、数据存储场景复杂时,则引入专门的数据库管理系统,如Oracle、MySQL等。这些数据库管理系统的数据都是存储在硬盘上,同时可以为应用层提供数据访问的事务机制、索引结构等满足各种业务实现所需要的功能,其索引结构一般也是基于B+树实现。而B+树与红黑树相比,B+树的设计目本文档来自技高网...

【技术保护点】
1.一种基于改进红黑树的内存数据库索引方法,其特征在于包括以下步骤:/n创建改进的红黑树索引结构:/nS1、创建一改进的红黑树,其节点结构按照标准红黑树创建;/nS2、创建一头部节点head,该头部节点head内设有指针header.root且指向所述红黑树索引结构的根节点root,指针header.flink指向所述红黑树索引结构的第一个叶子节点,以及指针header.blink指向所述红黑树索引结构的最后一个叶子节点;/nS3、创建一双向链表,该链表的元素包括所述红黑树索引结构的所有叶子节点,其中,除第一个叶子节点外,每一个叶子节点内都设有一个指向该叶子节点的前一个叶子节点的指针flink...

【技术特征摘要】
1.一种基于改进红黑树的内存数据库索引方法,其特征在于包括以下步骤:
创建改进的红黑树索引结构:
S1、创建一改进的红黑树,其节点结构按照标准红黑树创建;
S2、创建一头部节点head,该头部节点head内设有指针header.root且指向所述红黑树索引结构的根节点root,指针header.flink指向所述红黑树索引结构的第一个叶子节点,以及指针header.blink指向所述红黑树索引结构的最后一个叶子节点;
S3、创建一双向链表,该链表的元素包括所述红黑树索引结构的所有叶子节点,其中,除第一个叶子节点外,每一个叶子节点内都设有一个指向该叶子节点的前一个叶子节点的指针flink;除最后一个叶子节点外,每一个叶子节点内都设有一个指向该叶子节点的后一个叶子节点的指针blink;
所述改进的红黑树的节点内设有指向该节点的左子节点的指针lc和指向该节点的右子节点的指针rc,或者除带有叶子节点的节点之外的节点内设有所述指针lc和指针rc,该指针lc和指针rc的设置与标准红黑树一致;所述改进的红黑树的节点内均设有指向其左子树、右子树的特定叶子节点的指针;
所述红黑树索引结构的叶子节点内设有用于指向数据的指针/地址,或者直接将叶子节点用于存放数据;
通过所述红黑树索引结构进行数据查找;插入数据以及删除数据则通过对所述红黑树索引结构的叶子节点进行操作且涉及该红黑树索引结构的节点的操作与标准红黑树相同;通过所述循环双向链表对数据信息进行遍历操作。


2.根据权利要求1所述的内存数据库索引方法,其特征在于,所述红黑树索引结构的节点内存放的指向该节点的左子树、右子树的特定叶子节点的指针包括指向该节点的左子树的最大叶子节点的指针lk和指向该节点的右子树的最小叶子节点的指...

【专利技术属性】
技术研发人员:朱鸿斌金健王健星夏之春
申请(专利权)人:上海金仕达软件科技有限公司
类型:发明
国别省市:上海;31

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

1