一种大对象存储、查询方法、装置、设备及介质制造方法及图纸

技术编号:38837786 阅读:9 留言:0更新日期:2023-09-17 09:53
本申请公开了一种大对象存储、查询方法、装置、设备及介质,所述方法包括:获取待存储的大对象,确定大对象的类型;对大对象执行第一类存储操作,包括:根据大对象的类型,确定大对象的索引信息和索引信息存储方式;按照索引信息存储方式存储索引信息,以及,若索引信息不包括大对象的数据内容,则将大对象的数据内容存储到大对象段;或,对大对象执行第二类存储操作,包括:根据大对象的类型,判断是否需要生成大对象的索引信息;若是,则根据大对象的类型,确定大对象的索引信息和索引信息存储方式,按照索引信息存储方式存储索引信息,并将大对象的数据内容存储到大对象段;或,若否,则将大对象的数据内容存储到大对象属性列。将大对象的数据内容存储到大对象属性列。将大对象的数据内容存储到大对象属性列。

【技术实现步骤摘要】
一种大对象存储、查询方法、装置、设备及介质


[0001]本申请涉及计算机
,尤其涉及一种大对象存储、查询方法、装置、设备及介质。

技术介绍

[0002]随着科技的发展进步,各种信息或数据不断产生。其中,数据主要可以分为两大类,一类是具有一定的数据结构,可以通过表格进行呈现或处理的数据,称为结构化数据,比如学生的姓名,学号,年龄等;另一类是无法使用数字或者统一的结构表示的数据,称为非结构化数据,如图像,音频,视频等。
[0003]随着信息时代的快速变化和短视频等媒体的出现,人们接触和使用各种数据,尤其是非结构化数据日益频繁,相应的,如何更好地对数据进行存储,成为重要课题。
[0004]现有技术中,可以使用大对象(LOB)进行数据存储,且大对象特别适用于文档、图像、音频、视频等非结构化数据或字符串数据的存储。而且,对于不确定今后大小变化的数据,也适合使用大对象进行存储。
[0005]然而,大对象不仅可以存储几字节的文本数据,也可以存储几个GB级别甚至更大体量的数据,并且,很多情况下,大对象存储的都是大小在一个或几个数据块(即block,是数据库最小的逻辑组成部分,也是数据库存储数据的最小单位)以内的数据,甚至还有大小为几个字节或为空的数据。另外,数据库也无法约束用户使用大对象保存多大的数据。若小体量的数据和大体量的数据的存储方式相同,就会出现频繁扩展,查询效率慢等性能问题。
[0006]有鉴于此,需要更高效的大对象存储和查询方案。

技术实现思路

[0007]本申请提供一种大对象存储、查询方法、装置、设备及介质,用以解决如何更高效地进行大对象存储以及大对象查询的技术问题。
[0008]为解决上述技术问题,本申请提供如下技术方案:一种大对象存储方法,所述方法包括:获取待存储的大对象,确定所述大对象的类型;对所述大对象执行第一类存储操作,包括:根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式;按照所述索引信息存储方式存储所述索引信息,以及,若所述索引信息不包括所述大对象的数据内容,则将所述大对象的数据内容存储到大对象段;或,对所述大对象执行第二类存储操作,包括:根据所述大对象的类型,判断是否需要生成所述大对象的索引信息;若是,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,按照所述索引信息存储方式存储所述索引信息,并将所述大对象的数据内容存储到大对象段;或,若否,则将所述大对象的数据内容存储到大对象属性列。
[0009]进一步的,其中,确定所述大对象的类型,包括:根据所述待存储的大对象的大小,确定所述大对象的类型。
[0010]进一步的,其中,若是对所述大对象执行第一类存储操作,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,包括:若所述大对象的类型为第一类,则所述大对象的索引信息包括所述大对象的数据内容;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;和/或,若所述大对象的类型为第二类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块中的项;和/或,若所述大对象的类型为第三类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块;和/或,若所述大对象的类型为第四类,则所述大对象的索引信息包括索引树,所述索引树作为所述大对象的数据内容的存储位置识别信息索引;所述索引信息存储方式包括:将所述索引树的结点存储在数据块中;其中,所述存储位置包括数据块。
[0011]进一步的,其中,若所述大对象的类型为第四类,则将所述索引树的根结点信息和第一层最左叶结点信息或第一层最右叶结点信息存储到大对象属性列。
[0012]进一步的,其中,对所述大对象执行第一类存储操作或对所述大对象执行第二类存储操作还包括:将所述大对象的大对象头存储到大对象属性列。
[0013]进一步的,其中,若是对所述大对象执行第二类存储操作,且需要生成所述大对象的索引信息,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,包括:若所述大对象的类型为第二类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块中的项;和/或,若所述大对象的类型为第三类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块;和/或,若所述大对象的类型为第四类,则所述大对象的索引信息包括索引树,所述索引树作为所述大对象的数据内容的存储位置识别信息索引;所述索引信息存储方式包括:将所述索引树的结点存储在数据块中;其中,所述存储位置包括数据块。
[0014]进一步的,其中,若是对所述大对象执行第二类存储操作,则当所述大对象的类型为第一类时,不需要生成所述大对象的索引信息;和/或,当所述大对象的类型不是第一类
时,需要生成所述大对象的索引信息。
[0015]进一步的,其中,所述方法还包括:判断大对象是否满足升级条件;若所述大对象满足升级条件,则按照升级后的类型对所述大对象执行第一类存储操作或第二类存储操作。
[0016]本申请还提供一种大对象查询方法,所述方法包括:获取查询请求,根据所述查询请求确定待查询大对象和查询规则;根据待查询大对象的类型,确定索引信息;若所述索引信息包含所述待查询大对象的数据内容,则根据所述查询规则从所述数据内容中查询目标数据;若所述索引信息不包含所述待查询大对象的数据内容,则根据所述索引信息确定待查询大对象的数据内容的存储位置,根据所述查询规则从所述存储位置中查询目标数据;或,根据待查询大对象的类型确定是否通过索引方式进行查询;若是,则确定索引信息,根据所述索引信息确定待查询大对象的数据内容的存储位置,根据所述查询规则从所述存储位置中查询目标数据。
[0017]进一步的,其中,所述查询规则包括偏移量。
[0018]进一步的,其中,根据所述查询规则从所述存储位置中查询目标数据包括:根据所述查询规则从所述存储位置的数据内容中确定查询起始位置,从所述查询起始位置开始查询符合所述查询规则的目标数据。
[0019]进一步的,其中,所述查询起始位置位于某个数据块,从所述查询起始位置开始查询符合所述查询规则的目标数据包括:从查询起始位置所在的数据块开始查询符合所述查询规则的目标数据;若需要查询其他数据块,则根据索引信息确定下一个被查询的数据块;从各个被查询的数据块查询符合所述查询规则的目标数据。
[0020]本申请还提供一种大对象存储装置,所述装置包括:分类模块,用于获取待存储的大对象,确定所述大对象的类型;存储模块,用于对所述大对象执行第一类存储操作,包括:根据所述大对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大对象存储方法,其特征在于,所述方法包括:获取待存储的大对象,确定所述大对象的类型;对所述大对象执行第一类存储操作,包括:根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式;按照所述索引信息存储方式存储所述索引信息,以及,若所述索引信息不包括所述大对象的数据内容,则将所述大对象的数据内容存储到大对象段;或,对所述大对象执行第二类存储操作,包括:根据所述大对象的类型,判断是否需要生成所述大对象的索引信息;若是,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,按照所述索引信息存储方式存储所述索引信息,并将所述大对象的数据内容存储到大对象段;或,若否,则将所述大对象的数据内容存储到大对象属性列。2.如权利要求1所述的方法,其特征在于,确定所述大对象的类型,包括:根据所述待存储的大对象的大小,确定所述大对象的类型。3.如权利要求1或2所述的方法,其特征在于,若是对所述大对象执行第一类存储操作,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,包括:若所述大对象的类型为第一类,则所述大对象的索引信息包括所述大对象的数据内容;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;和/或,若所述大对象的类型为第二类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块中的项;和/或,若所述大对象的类型为第三类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块;和/或,若所述大对象的类型为第四类,则所述大对象的索引信息包括索引树,所述索引树作为所述大对象的数据内容的存储位置识别信息索引;所述索引信息存储方式包括:将所述索引树的结点存储在数据块中;其中,所述存储位置包括数据块。4.如权利要求3所述的方法,其特征在于,若所述大对象的类型为第四类,则将所述索引树的根结点信息和第一层最左叶结点信息或第一层最右叶结点信息存储到大对象属性列。5.如权利要求1所述的方法,其特征在于,对所述大对象执行第一类存储操作或对所述大对象执行第二类存储操作还包括:将所述大对象的大对象头存储到大对象属性列。6.如权利要求1或2所述的方法,其特征在于,若是对所述大对象执行第二类存储操作,且需要生成所述大对象的索引信息,则根据所述大对象的类型,确定所述大对象的索引信息和索引信息存储方式,包括:若所述大对象的类型为第二类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块中的项;
和/或,若所述大对象的类型为第三类,则所述大对象的索引信息包括所述大对象的数据内容的存储位置识别信息;所述索引信息存储方式包括:将所述索引信息存储到大对象属性列;其中,所述存储位置包括数据块;和/或,若所述大对象的类型为第四类,则所述大对象的索引信息包括索引树,所述索引树作为所述大对象的数据内容的存储位置识别信息索引;所述索引信息存储方式包括:将所述索引树的结点存储在数据块中;其中,所述存储位置包括数据块。7.如权利要求1所述的方法,其特征在于,若是对所述大对象执行第二类存储操作,则当所述大对象的类型为第一类时,不需要生成所述大对象的索引信息;和/或,当所述大对象的类型不是第一类时,需要生成所述大对象的索引信息。8.如权利要求1所述的方法,其特征在于,所述方法还包括:判断大对象是否满足升级条件;若所述大对象满足升级条件,则按照升级后的类型对所述大对象执行第一类存储操作或第二类存储操作。9.一种大对象查询方法,其特征在于...

【专利技术属性】
技术研发人员:周勇亮刘碧楠马岳刘爱莉龙启斌赵冬伟谭炜波赵旭李涛
申请(专利权)人:天津神舟通用数据技术有限公司
类型:发明
国别省市:

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

1