[发明专利]一种内存数据库的hash索引构建方法及装置有效
申请号: | 201811642865.2 | 申请日: | 2018-12-29 |
公开(公告)号: | CN109885568B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 王运来;蔡哲军;褚华兴;宋凯;曹东升;龚岩 | 申请(专利权)人: | 亚信科技(中国)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 李博洋 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 数据库 hash 索引 构建 方法 装置 | ||
本发明公开了一种内存数据库的hash索引构建方法及装置,该hash索引构建方法包括:获取内存数据库中的数据链表的行数;根据行数分配用于hash索引的桶节点数组中的桶节点个数,并记录各个桶节点数组的头节点;根据桶节点个数及头节点构建用于模拟数据链表的数组元素。通过实施本发明,基于使用数组元素来模拟链表节点,且不再额外分配空间存储链表节点的值,空间占用小;数组元素一次性分配,内存连续,访问速度快,效率不受影响。
技术领域
本发明涉及数据处理技术领域,具体涉及一种内存数据库的hash索引构建方法及装置。
背景技术
现有技术在内存数据库中实现hash索引时,hash桶下的元素节点多为单向或者双向链表,数据行上某一个或者某几个字段的索引,是根据这些字段值,通过hash函数进行运算,映射到某个hash桶下。hash桶下的元素节点,存储了数据行的行号,当使用select*fromtable where a=value;进行查询时,先根据value计算hash值,算出在第几个hash桶,然后遍历hash桶下的元素,根据存储的行号,取出每一行a这一列存储的值,与value进行比对,若完全相等,则就是要找的行。以hash桶下的节点为双向链表举例,桶下的元素节点结构为:
对于内存数据库里的某张表,假设表总共有m行,表上有n个hash索引,则这张表就有n套hash结构,每套hash结构有m个桶节点,以上述双向链表为例,这张表的hash索引占用的内存为n*(hash索引头节点占用内存+m*24字节),在n较大时,内存占用非常明显。24个字节有时甚至比数据表中这行数据本身占用的内存还要大。
发明内容
有鉴于此,本发明实施例提供了一种内存数据库的hash索引构建方法及装置,以解决现有的hash索引数据结构内存占用较大的问题。
根据第一方面,本发明实施例提供了一种内存数据库的hash索引构建方法,包括:获取内存数据库中的数据链表的行数;根据所述行数分配用于hash索引的桶节点数组中的桶节点个数,并记录各个所述桶节点数组的头节点;根据所述桶节点个数及头节点构建用于模拟所述数据链表的数组元素。
结合第一方面,在第一方面第一实施方式中,根据所述桶节点个数及头节点构建用于模拟所述数据链表的数组元素,包括:根据所述数据链表中的数据行数与hash桶的映射关系,将所述hash桶指向对应映射的数据链表中的行。
结合第一方面第一实施方式,在第一方面第二实施方式中,根据所述桶节点个数及头节点构建用于模拟所述数据链表的数组元素,还包括:按照所述内存数据库中的数据链表的行序号,为所述数组元素设置下标。
结合第一方面,在第一方面第三实施方式中,该内存数据库的hash索引构建方法还包括:判断所述数据链表的行数是否发生变化;如果所述数据链表的行数发生变化,根据所述数据链表的行数变化对应修改所述桶节点数组的数组元素。
根据第二方面,本发明实施例提供了一种内存数据库的hash索引构建装置,包括:数据行数获取模块,用于获取内存数据库中的数据链表的行数;桶节点分配模块,用于根据所述行数分配用于hash索引的桶节点数组中的桶节点个数,并记录各个所述桶节点数组的头节点;数据元素构建模块,用于根据所述桶节点个数及头节点构建用于模拟所述数据链表的数组元素。
结合第二方面,在第二方面第一实施方式中,所述数据元素构建模块包括:数据元素构建子模块,用于根据所述数据链表中的数据行数与hash桶的映射关系,将所述hash桶指向对应映射的数据链表中的行。
结合第二方面第一实施方式,在第二方面第二实施方式中,所述数据元素构建模块还包括:下标配置子模块,用于按照所述内存数据库中的数据链表的行序号,为所述数组元素设置下标。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亚信科技(中国)有限公司,未经亚信科技(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811642865.2/2.html,转载请声明来源钻瓜专利网。