[发明专利]一种读优化的内存数据库Trie树索引方法有效
| 申请号: | 201510459589.6 | 申请日: | 2015-07-30 |
| 公开(公告)号: | CN105117417B | 公开(公告)日: | 2018-04-17 |
| 发明(设计)人: | 段章峰;伍卫国;崔金华 | 申请(专利权)人: | 西安交通大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 西安智大知识产权代理事务所61215 | 代理人: | 贺建斌 |
| 地址: | 710049*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 一种读优化的内存数据库Trie树索引方法,对于字符型数据,提供了O(1)的写入和查询时间复杂度,优化后的Trie树结构通过动态的分配前缀节点,减少了索引结构所占用的内存空间,通过使用节点内部的排序链表,完成范围查询操作,对list和set数据类型的支持扩展了数据库的数据格式,使数据库能有效的应对多种应用场景,面对字符数据写回可持久化存储时数据量大的问题,优化后的Trie树索引结构利用字符串间的共享前缀特点,对写回可持久化设备的数据进行压缩,在节省存储空间的同时,也加快了数据写回的速度。 | ||
| 搜索关键词: | 一种 优化 内存 数据库 trie 索引 方法 | ||
【主权项】:
一种读优化的内存数据库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’)对于位于左值和右值区间内部的节点,采用直接递归的方法来确定查询结果;对于区间的边界,根据应用的需要确定最终的结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510459589.6/,转载请声明来源钻瓜专利网。
- 上一篇:冷接触胶粘剂
- 下一篇:一种横机用的导纱装置





