[发明专利]索引表创建方法和装置、目标记录查找方法和装置在审
申请号: | 202210370365.8 | 申请日: | 2022-04-10 |
公开(公告)号: | CN114969026A | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 谢志峰;裴益川;苗永春;蔡卓然;单洪泷 | 申请(专利权)人: | 上海大象张量纳米科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙) 31290 | 代理人: | 袁亚军 |
地址: | 200331 上海市普*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 索引 创建 方法 装置 目标 记录 查找 | ||
1.一种索引表创建方法,其特征在于,所述方法包括:
基于数据表的目标字段创建排序表,所述排序表用于对所述目标字段的键值进行排序,所述排序表的每一条目均包括条目编号、键值和键值在所述数据表中的记录编号;
基于所述排序表创建散列表,所述散列表中与各个键值对应的行均包括第一指针变量和第二指针变量,所述第一指针变量存储对应的键值在所述排序表中第一次出现时的条目编号,所述第二指针变量存储所述对应的键值在所述排序表中最后一次出现时的条目编号;
采用所述排序表中的条目编号字段、记录编号字段和所述散列表,创建所述数据表的索引表。
2.根据权利要求1所述的方法,其特征在于,所述基于所述排序表创建散列表,包括:
步骤A:将所述排序表中的第i条目的键值存储至键值存储器,将所述排序表中第i条目的条目编号存储至第一编号存储器和第二编号存储器,i=0;
步骤B:判断所述排序表中第i+1条目的键值与所述键值存储器中的键值是否相同;若是,执行步骤C;若否,执行步骤F;
步骤C:将第i+1条目的条目编号存储至第二编号存储器,使i=i+1;
步骤D:判断i是否等于N-1;若是,执行步骤E;若否,执行步骤B;其中N为所述排序表中条目的数量;
步骤E:基于散列函数计算所述键值存储器中键值在所述散列表中的对应行,将所述第一编号存储器中条目编号存储在所述对应行的第一指针变量中,将所述第二编号存储器中的条目编号存储在所述对应行的第二指针变量中;
步骤F:基于散列函数计算所述键值存储器中键值在所述散列表中的对应行,将所述第一编号存储器中条目编号存储在所述对应行的第一指针变量中,将所述第二编号存储器中的条目编号存储在所述对应行的第二指针变量中,使i=i+1,存储第i条目的键值至键值存储器,以及存储所述排序表中第i条目的条目编号至第一编号存储器和第二编号存储器;随后执行步骤D。
3.根据权利要求2所述的方法,其特征在于:在执行步骤A之前,所述方法还包括步骤G:获取所述排序表中的去重后键值的数量,基于去重后键值的数量初始化所述散列表,以及确定所述散列函数。
4.根据权利要求2所述的方法,其特征在于,在步骤A包括:设置c=0;
步骤E包括E1-E4:
E1:基于散列函数计算键值存储器中键值在散列表中的对应行;
E2:判断散列表中对应行的第一指针变量和/第二指针变量是否已经存储条目编号;若否,执行步骤E3;若是,执行步骤E4;
步骤E3:将第一编号存储器中条目编号存储在对应行的第一指针变量中,将第二编号存储器中的条目编号存储在对应行的第二指针变量中;
步骤E4:将键值对应的散列值存储在临时表格第c行的散列值列中,将第一编号存储器中条目编号存储在临时表格第c行的第一条目编号列中,以及将第二编号存储器中的条目编号存储在临时表格中第c行的第二条目编号列中;
所述步骤F还包括步骤F1-F5;
步骤F1:基于散列函数计算键值存储器中键值在散列表中的对应行;
步骤F2:判断散列表中对应行的第一指针变量和/第二指针变量是否已经存储条目编号;若否,执行步骤F3;若是,执行步骤F4;
步骤F3:将第一编号存储器中条目编号存储在对应行的第一指针变量中,将第二编号存储器中的条目编号存储在对应行的第二指针变量中,随后执行步骤F5;
步骤F4:将键值对应的散列值存储在临时表格第c行的散列值列中,将第一编号存储器中条目编号存储在临时表格第c行的第一条目编号列中,以及将第二编号存储器中的条目编号存储在临时表格中第c行的第二条目编号列中,并使c=c+1,随后执行步骤F5;
步骤F5:使i=i+1,以及存储第i条目的键值至键值存储器,存储排序表中第i条目的条目编号至第一编号存储器和第二编号存储器;
所述方法在执行步骤E后,还包括:
步骤H:根据临时表格的行数c确定扩充行的行数,并在散列表的末尾添加扩充行;据扩充行的行数c和在临时表格中存储的散列值,计算散列值在扩充行中对应的行,并将此散列值对应行的第一条目编号存储至扩充行中对应行的第一指针变量中,将散列值对应行的第二条目编号存储至扩充行中对应行的第二指针变量中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大象张量纳米科技有限公司,未经上海大象张量纳米科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210370365.8/1.html,转载请声明来源钻瓜专利网。