一种数据存储方法及装置制造方法及图纸

技术编号:24756149 阅读:29 留言:0更新日期:2020-07-04 09:10
本发明专利技术提供了一种数据存储方法及装置,该方法包括:接收待存储数据;根据该时间戳确定该待存储数据为有序数据或无序数据;在该待存储数据为有序数据且检测到B+树已创建的最后一个叶子节点中已存储数据的数据量大于或等于第一预设阈值的情况下,创建第一叶子节点,并将该待存储数据以键值的方式存储到该第一叶子节点中;在该待存储数据为无序数据的情况下,将该待存储数据以键值的方式插入该B+树已创建的叶子节点中,可以解决相关技术中通过比较叶子节点和数据的大小,判断叶子节点是否满,如果叶子节点满则进行B+树的分裂导致存储空间利用率不高的问题,提高了B+树叶子节点使用率以及查询效率。

A data storage method and device

【技术实现步骤摘要】
一种数据存储方法及装置
本专利技术涉及数据处理
,具体而言,涉及一种数据存储方法及装置。
技术介绍
标准B+树定义每个叶子节点(除根节点外)里面至少保存T个数据,最多保存2T个数据,当叶子节点中已经保存有2T个数据之后,如果还需要往该节点里面添加数据,就会触发原来的叶子节点进行分裂,将一个叶子节点分裂成2个叶子节点,其中一个叶子节点保存T个数据,另外一个叶子节点保存T+1个数据;B+树的这种写满在写的情况下需要分裂是为了解决后续写入的数据是无序的情况下,新加入的数据可能需要存储到前面的叶子节点上的时候,在前面的叶子节点里面有空间保存新的数据。图1是根据相关技术中的数据存储的示意图一,如图1所示,一个节点里面最多可以保存10个数据;当原来的叶子节点中已经有10个数据0、1、2、3、4、5、6、7、8和9的情况下,新增数据10之后叶子节点被写满,此时B+树需要分裂产生2个叶子节点,并且第一个叶子节点保存5个数据,数据分别为0、1、2、3和4;第二个叶子节点保存6个数据,数据分别为5、6、7、8、9和10。当删除叶子节点里面的数本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,包括:/n接收待存储数据,其中,所述待存储数据中携带有时间戳;/n根据所述时间戳确定所述待存储数据为有序数据或无序数据;/n在所述待存储数据为有序数据且检测到B+树已创建的最后一个叶子节点中已存储数据的数据量大于或等于第一预设阈值的情况下,创建第一叶子节点,并将所述待存储数据以键值的方式存储到所述第一叶子节点中,其中,所述待存储数据的键与所述时间戳一一对应;/n在所述待存储数据为无序数据的情况下,将所述待存储数据以键值的方式插入所述B+树已创建的叶子节点中。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:
接收待存储数据,其中,所述待存储数据中携带有时间戳;
根据所述时间戳确定所述待存储数据为有序数据或无序数据;
在所述待存储数据为有序数据且检测到B+树已创建的最后一个叶子节点中已存储数据的数据量大于或等于第一预设阈值的情况下,创建第一叶子节点,并将所述待存储数据以键值的方式存储到所述第一叶子节点中,其中,所述待存储数据的键与所述时间戳一一对应;
在所述待存储数据为无序数据的情况下,将所述待存储数据以键值的方式插入所述B+树已创建的叶子节点中。


2.根据权利要求1所述的方法,其特征在于,将所述待存储数据以键值的方式插入B+树已创建的叶子节点中包括:
从所述B+树已创建的叶子节点中获取用于存储所述待存储数据的目标叶子节点;
判断所述目标叶子节点是否为所述B+树中已创建的最后一个叶子节点;
在所述目标叶子节点为所述B+树中已创建的最后一个叶子节点且所述目标叶子节点中已存储数据的数据量小于所述第一预设阈值的情况下,将所述待存储数据以键值的方式存储到所述目标叶子节点;
在所述目标叶子节点不为所述B+树中已创建的最后一个叶子节点且所述目标叶子节点中已存储数据的数据量小于第二预设阈值的情况下,将所述待存储数据以键值的方式存储到所述目标叶子节点中,其中,所述第二预设阈值大于所述第一预设阈值。


3.根据权利要求2所述的方法,其特征在于,将所述待存储数据以键值的方式插入B+树已创建的叶子节点中还包括:
在所述目标叶子节点不为所述B+树中已创建的最后一个叶子节点且所述目标叶子节点中已存储数据的数据量大于所述第二预设阈值的情况下,将所述目标叶子节点分裂为第二叶子节点和第三叶子节点,并将所述待存储数据以键值的方式存储到所述第二叶子节点或所述第三叶子节点中;
在所述目标叶子节点为所述B+树中已创建的最后一个叶子节点且所述目标叶子节点中已存储数据的数据量大于或等于所述第二预设阈值的情况下,创建第四叶子节点,并将所述待存储数据以键值的方式存储到所述第四叶子节点中。


4.根据权利要求2所述的方法,其特征在于,从所述B+树已创建的叶子节点中获取用于存储所述待存储数据的目标叶子节点包括:
获取所述B+树已创建的叶子节点的标识信息,其中,所述标识信息用于表征叶子节点中已存储数据的键的区间范围;
根据所述标识信息确定用于存储所述待存储数据的所述目标叶子节点。


5.根据权利要求1至4中任一项所述的方法,其特征在于,根据所述时间戳确定所述待存储数据为有序数据或无序数据包括:
获取所述待存储数据的时间戳,其中,所述叶子节点中已存储数据的键与所述已存储数据的时间戳一一对应;
在所述待存储数据的时间戳大于所述B+树中已创建的最后一个叶子节点中已存储数据的键对应...

【专利技术属性】
技术研发人员:赵建波魏齐良
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江;33

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

1