[发明专利]一种读优化的内存数据库Trie树索引方法有效
| 申请号: | 201510459589.6 | 申请日: | 2015-07-30 |
| 公开(公告)号: | CN105117417B | 公开(公告)日: | 2018-04-17 |
| 发明(设计)人: | 段章峰;伍卫国;崔金华 | 申请(专利权)人: | 西安交通大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 西安智大知识产权代理事务所61215 | 代理人: | 贺建斌 |
| 地址: | 710049*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 优化 内存 数据库 trie 索引 方法 | ||
1.一种读优化的内存数据库Trie树索引方法,其特征在于,包括以下步骤:
第1步,构造基本的数据结构:
向优化的Trie树结构中写入数据,其过程如下:
1.1)如果根节点为空,则分配根节点空间,并进行初始化;
1.2)根据当前字符指针所指字符,在索引结构当前节点内部的哈希表中查找相应的子节点指针是否为空,如果为空,参照步骤1.1),分配节点空间,并且按照字符的大小顺序,插入到节点内部的排序链表中,保证数据有序;如果不为空,则跳转到步骤1.3);
1.3)索引结构指针指向相应的子节点指针,字符指针顺序后移,直到字符串结尾;判断节点内部的value域是否为空,如果为空,则直接进行拷贝操作,将新的value值拷贝进节点内部;如果不为空,那么判断新的value值所需空间是否大于当前节点内部的value值空间,如果大于,则重新申请空间;如果小于,则直接进行拷贝操作,并更新节点内部相应字段的值;
第2步,在已经建立好的优化的Trie树中进行数据查询操作:
查询操作分为单值查询和范围查询两种,单值查询操作的步骤如下:
2.1)如果根节点为空,则直接返回,否则,进行步骤2.2);
2.2)根据当前字符指针所指字符,计算其哈希值,在哈希表中查找对应的子节点指针,如果哈希表中没有找到,则需要在哈希链表中进一步查找,如果找到,则将哈希表中子节点指针值赋给当前索引结构指针,进行步骤2.3);如果没有找到,则返回,表示没有查找到key对应的value;
2.3)字符指针顺序后移,直到字符串结尾,返回索引结构指针所指节点内的value值,即为key对应的value值;
范围查询的步骤如下:
2.1’)采用逐级递归的方法,确定存储范围查询中左值的节点;
2.2’)采用逐级递归的方法,确定存储范围查询中右值的节点;
2.3’)对于位于左值和右值区间内部的节点,采用直接递归的方法来确定查询结果;对于区间的边界,根据应用的需要确定最终的结果。
2.根据权利要求1所述的一种读优化的内存数据库Trie树索引方法,其特征在于:所述的优化的Trie树索引中的前缀压缩方法步骤如下:
1)从根节点开始对索引结构进行递归遍历,每访问一个索引结构节点,其内部排序链表中存储的子节点指针所指节点即共享相同前缀;
2)计算出每一个节点的共享前缀,向磁盘中写入共享前缀部分,遍历排序链表,针对排序链表中的每一个节点,只需要写入key的非共享部分;
3)value值不进行压缩操作,写入原始的value值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510459589.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:冷接触胶粘剂
- 下一篇:一种横机用的导纱装置





