一种内存数据库中构造冲突数据索引的方法技术

技术编号:2917903 阅读:327 留言:0更新日期:2012-04-11 18:40
一种内存数据库中构造冲突数据索引的方法,1.根据第一冲突数据的索引键值定位到主表的索引节点,将第一冲突数据插入;2.根据第二冲突数据的索引键值及第一冲突数据的索引值定位到唯一冲突表的索引节点,将第二冲突数据插入,若要继续插入,进入步骤3,否则,进入步骤5;3.根据当前待插入冲突数据的索引键值及各已插入的冲突数据的索引值定位到非唯一冲突表的索引节点,将当前待插入冲突数据插入;4.判断是否继续插入冲突数据,若要继续插入,则回到步骤3,否则,进入步骤5;5.根据最后插入的冲突数据的索引值定位到非唯一冲突表的索引节点,将该索引节点的索引值定为0。本发明专利技术提高了冲突数据的检索速度。

【技术实现步骤摘要】

本专利技术涉及一种构造数据索引的方法,尤其是一种内存数据库中构造冲突数据索引的方法
技术介绍
对于大容量的内存数据库,各种业务往往需要对内存数据库中的数据进行频繁的检索。各种数据具有不同的特性,有的数据在不同的记录中是互斥的,具有唯一性,因而需要通过遍历内存数据库对这类数据进行检索;有的数据在不同的记录中是冲突的,同样采用遍历内存数据库的方式进行检索,涉及的数据量巨大,检索的速度较慢,检索的效率较低。目前,大部分数据库无法对这类冲突数据建立索引,影响了数据的检索速度。
技术实现思路
本专利技术要解决的技术问题是提供一种构造了能提高冲突数据检索速度的冲突数据索引的内存数据库中构造冲突数据索引的方法。本专利技术解决其技术问题所采用的技术方案是:一种内存数据库中构造冲突数据索引的方法,包括以下步骤:1.1 根据第一冲突数据对应的索引键值定位到主表的相应的索引节点,将所述第一冲突数据插入到所述索引节点;-->1.2 根据第二冲突数据对应的索引键值及所述第一冲突数据的索引节点的索引值定位到唯一冲突表的相应的索引节点,将所述第二冲突数据插入到所述索引节点,若要继续插入冲突数据,进入步骤1.3,否则,进入步骤1.5;1.3 根据当前待插入冲突数据对应的索引键值及各已插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应的索引节点,将所述当前待插入冲突数据插入到所述索引节点;1.4 判断是否需要继续插入冲突数据,若要继续插入,则回到步骤1.3,否则,进入步骤1.5;1.5 根据最后插入的冲突数据的索引节点的索引值定位到所述非唯一冲突表的相应索引节点,将所述索引节点的索引值定为0,并结束冲突数据索引的构造。上述方案中,对检索到的冲突数据的索引节点进行删除操作时,若所述索引节点位于所述主表,则包括以下步骤:2.1 检索到所述索引节点的位于所述唯一冲突表的下一索引节点后,将所述索引节点的索引值更新为位于所述唯一冲突表的下一索引节点的索引值;2.2 检索到位于所述唯一冲突表的下一索引节点的位于所述非唯一冲突表的下一索引节点,将所述位于唯一冲突表的下一索引节点的索引值更新为所述位于非唯一冲突表的下一索引节点的索引值,并将所述位于非唯一冲突表的下一索引节点清空。上述方案中,对检索到的冲突数据的索引节点进行删除操作时,若所述索引节点位于所述唯一冲突表或者所述非唯一冲突表,则检索到所述索引节点的下一索引节点,若所述下一索引节点的索引值不为-->0,则将所述索引节点的索引值更新为所述下一索引节点的索引值,并将所述下一索引节点清空,否则,将所述索引节点清空后再将所述索引节点的索引值定为0。上述方案中,对冲突数据进行检索时,包括以下步骤:4.1 根据待检索的冲突数据对应的索引键值定位到所述主表的相应索引节点,判断所述索引节点是否为所述待检索的冲突数据,若是,则结束冲突数据的检索,否则,将所述索引节点记为当前索引节点,进入步骤4.2;4.2 根据所述当前索引节点的索引值定位到所述当前索引节点的下一索引节点,将所述下一索引节点记为当前索引节点,判断所述当前索引节点是否为所述待检索的冲突数据,若是,则结束冲突数据的检索,否则,进入步骤4.3;4.3 判断所述当前索引节点的索引值是否为0,若是,则结束冲突数据的检索,否则,回到步骤4.2。上述方案中,步骤1.2中,根据第二冲突数据对应的索引键值及所述第一冲突数据的索引节点的索引值定位到唯一冲突表的相应索引节点是指首先根据所述第二冲突数据对应的索引键值定位到所述主表的相应的索引节点,然后根据所述索引节点的索引值定位到所述唯一冲突表的相应的索引节点。上述方案中,步骤1.3中,根据当前待插入冲突数据对应的索引键值及各已插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应索引节点是指首先根据所述当前待插入冲突数据对应的索引键值定位到所述主表的相应的索引节点,然后依次根据所述各已插入的冲突数据的索引节点的索引值定位到所述非唯一冲突表的相应的索引-->节点。上述方案中,所述索引节点的索引值为所述索引节点的冲突数据的记录号。上述方案中,根据冲突数据对应的索引键值定位到所述主表的相应的索引节点是指将所述冲突数据对应的索引键值通过哈希算法得到对应的哈希值,在根据所述哈希值定位到所述主表的相应的索引节点。上述方案中,所述主表与所述唯一冲突表及所述非唯一冲突表的容量相同。本专利技术的有益效果主要表现在:本专利技术提供的技术方案将冲突数据的索引节点串联,因而根据该冲突数据对应的索引键值进行检索时,可以把全部冲突数据的索引节点依次全部取出来,没有多余的遍历检索,从而构造的冲突数据索引可以提高冲突数据的检索速度。附图说明图1为本专利技术内存数据库中构造冲突数据索引的方法流程图;图2为本专利技术内存数据库中构造冲突数据索引的方法构造的冲突数据索引的结构示意图。具体实施方式下面结合附图对本专利技术作进一步的描述。参照图1,一种内存数据库中构造冲突数据索引的方法,包括以下步骤,其中,主表与唯一冲突表及非唯一冲突表的容量相同:步骤101:根据第一冲突数据对应的索引键值定位到主表的相应的索引节点,将第一冲突数据插入到该索引节点;-->步骤102-步骤103:根据第二冲突数据对应的索引键值及第一冲突数据的索引节点的索引值定位到唯一冲突表的相应的索引节点,将第二冲突数据插入到该索引节点,若要继续插入冲突数据,进入步骤104,否则,进入步骤106;步骤104:根据当前待插入冲突数据对应的索引键值及各已插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应的索引节点,将当前待插入冲突数据插入到该索引节点;步骤105:判断是否需要继续插入冲突数据,若要继续插入,则回到步骤104,否则,进入步骤106;步骤106:根据最后插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应索引节点,将索引节点的索引值定为0。最后,结束构造流程。对检索到的冲突数据的索引节点进行删除操作时,若索引节点位于主表,则首先,检索到索引节点的位于唯一冲突表的下一索引节点后,将索引节点的索引值更新为位于唯一冲突表的下一索引节点的索引值;然后,检索到位于唯一冲突表的下一索引节点的位于非唯一冲突表的下一索引节点,将位于唯一冲突表的下一索引节点的索引值更新为位于非唯一冲突表的下一索引节点的索引值,并将位于非唯一冲突表的下一索引节点清空。若索引节点位于唯一冲突表或者非唯一冲突表,则检索到索引节点的下一索引节点,若下一索引节点的索引值不为0,则将该索引节点的索引值更新为下一索引节点的索引值,并将下一索引节点清空,否则,将该索引节点清空后再将该索引节点的索引值定为0。其中,可以通过以下步骤对冲突数据进行检索:-->1、根据待检索的冲突数据对应的索引键值定位到主表的相应索引节点,判断该索引节点是否为待检索的冲突数据,若是,则结束冲突数据的检索,否则,将该索引节点记为当前索引节点,进入下一步;2、根据当前索引节点的索引值定位到当前索引节点的下一索引节点,将下一索引节点记为当前索引节点,判断该当前索引节点是否为待检索的冲突数据,若是,则结束冲突数据的检索,否则,进入下一步;3、判断该当前索引节点的索引值是否为0,若是,则结束冲突数据的检索,否则,回到步骤2。冲突数据的索引键值可以为ASCII字符,也本文档来自技高网...

【技术保护点】
一种内存数据库中构造冲突数据索引的方法,其特征在于,包括以下步骤: 1.1根据第一冲突数据对应的索引键值定位到主表的相应的索引节点,将所述第一冲突数据插入到所述索引节点; 1.2根据第二冲突数据对应的索引键值及所述第一冲突数据的索引节点的索引值定位到唯一冲突表的相应的索引节点,将所述第二冲突数据插入到所述索引节点,若要继续插入冲突数据,进入步骤1.3,否则,进入步骤1.5; 1.3根据当前待插入冲突数据对应的索引键值及各已插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应的索引节点,将所述当前待插入冲突数据插入到所述索引节点; 1.4判断是否需要继续插入冲突数据,若要继续插入,则回到步骤1.3,否则,进入步骤1.5; 1.5根据最后插入的冲突数据的索引节点的索引值定位到所述非唯一冲突表的相应索引节点,将所述索引节点的索引值定为0,并结束冲突数据索引的构造。

【技术特征摘要】
1、一种内存数据库中构造冲突数据索引的方法,其特征在于,包括以下步骤:1.1 根据第一冲突数据对应的索引键值定位到主表的相应的索引节点,将所述第一冲突数据插入到所述索引节点;1.2 根据第二冲突数据对应的索引键值及所述第一冲突数据的索引节点的索引值定位到唯一冲突表的相应的索引节点,将所述第二冲突数据插入到所述索引节点,若要继续插入冲突数据,进入步骤1.3,否则,进入步骤1.5;1.3 根据当前待插入冲突数据对应的索引键值及各已插入的冲突数据的索引节点的索引值定位到非唯一冲突表的相应的索引节点,将所述当前待插入冲突数据插入到所述索引节点;1.4 判断是否需要继续插入冲突数据,若要继续插入,则回到步骤1.3,否则,进入步骤1.5;1.5 根据最后插入的冲突数据的索引节点的索引值定位到所述非唯一冲突表的相应索引节点,将所述索引节点的索引值定为0,并结束冲突数据索引的构造。2、如权利要求1所述的内存数据库中构造冲突数据索引的方法,其特征在于,对检索到的冲突数据的索引节点进行删除操作时,若所述索引节点位于所述主表,则包括以下步骤:2.1 检索到所述索引节点的位于所述唯一冲突表的下一索引节点后,将所述索引节点的索引值更新为位于所述唯一冲突表的下一索引节点的索引值;2.2 检索到位于所述唯一冲突表的下一索引节点的位于所述非唯一冲突表的下一索引节点,将所述位于唯一冲突表的下一索引节点的索引值更新为所述位于非唯一冲突表的下一索引节点的索引值,并将所述位于非唯一冲突表的下一索引节点清空。3、如权利要求1其中之一所述的内存数据库中构造冲突数据索引的方法,其特征在于:对检索到的冲突数据的索引节点进行删除操作时,若所述索引节点位于所述唯一冲突表或者所述非唯一冲突表,则检索到所述索引节点的下一索引节点,若所述下一索引节点的索引值不为0,则将所述索引节点的索引值更新为所述下一索引节点的索引值,并将所述下一索引节点清空,否则,将所述索引节点清空后再将所述索引节点的索引值定为0。4、如权利要求2或3所述的内存数据库中构造冲突数据索...

【专利技术属性】
技术研发人员:王峰董安圆
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1