数据库的大对象读取方法与相关产品与流程

allin2025-08-05  25


本发明涉及数据库,特别是涉及一种数据库的大对象读取方法与相关产品。


背景技术:

1、大对象(large object)是数据库中的一类特殊的数据类型,主要有二进制大对象(binary large object,简称blob)和大文本对象(character large object/nationalcharacter large object,简称clob/nclob)两大类。blob用来存储二进制大型对象数据,例如图像、音频文件、视频或其他非文本格式的数据;clob和nclob则用于存储大量的字符数据,适合于存放长文本如文章、报告或者xml文档等。这类数据单个数据项的体量上限很高,最高可达gb级甚至tb级,同时体量差异又很大,数据量小的也可以小到几个字节,甚至为空。

2、在一些数据库系统中,大对象可能被分割成多个较小的存储切片进行存储,这种设计初衷可能是为了更好地管理大对象数据,但在实际应用中,当用户只需要读取大对象中某个特定区域的数据时,这种存储方式往往会导致不必要的性能开销。

3、具体来说,当用户发起读取请求时,传统的数据库系统可能会按照存储切片的顺序逐个读取它们,直到找到目标数据区域为止。这种方式不仅涉及频繁的表间切换和索引查找,还可能带来大量的数据传输和内存占用,特别是在大对象数据量非常大的情况下,会造成严重的资源浪费和性能下降。


技术实现思路

1、鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的数据库中临时大对象的存储方法及相关产品。

2、本发明的一个目的是提高数据的读取速度。

3、本发明一个进一步的目的是根据目标数据的数据范围的不同自动选择不同的读取策略。

4、特别地,本发明提供了一种数据库的大对象读取方法,包括:

5、获取读取指令,读取指令用于读取大对象的目标数据,大对象的数据分别存储于对象表和存储切片表中,对象表用于存储大对象的预读数据,预读数据为大对象在预设位置以前的数据,存储切片表用于存储大对象对应的存储切片数据,存储切片数据为大对象在预设位置以后的数据;

6、根据读取指令确定目标数据的数据范围;

7、根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表;

8、在目标数据表中截取数据范围之间的数据作为目标数据。

9、可选地,数据范围包括目标起点和目标终点;

10、根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表的步骤包括:判断目标起点和目标终点是否小于预设位置;在目标起点和目标终点均小于预设位置的情况下,则确定对象表为目标数据表;

11、在目标数据表中截取数据范围之间的数据作为目标数据的步骤包括:在对象表的预读数据中截取目标起点和目标终点之间的数据作为目标数据。

12、可选地,根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表的步骤包括:判断目标起点和目标终点是否小于预设位置;在目标起点小于预设位置并且目标终点大于预设位置的情况下,则确定对象表和存储切片表为目标数据表;

13、在目标数据表中截取数据范围之间的数据作为目标数据的步骤包括:在对象表的预读数据中截取目标起点之后的数据作为第一截取数据;在存储切片表的存储切片数据中截取目标终点之间的数据作为第二截取数据;将第一截取数据和第二截取数据合并作为目标数据。

14、可选地,根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表的步骤包括:判断目标起点和目标终点是否小于预设位置;在目标起点和目标终点均大于预设位置的情况下,则确定存储切片表为目标数据表;

15、在目标数据表中截取数据范围之间的数据作为目标数据的步骤包括:在存储切片表的存储切片数据中截取目标起点和目标终点之间的数据作为目标数据。

16、可选地,在存储切片表的存储切片数据中截取目标起点和目标终点之间的数据作为目标数据的步骤包括:

17、根据存储切片表中的预设索引查找与数据范围存在重叠的目标存储切片,预设索引用于将大对象的对象固定唯一标识和存储切片起点在大对象中的位置作为主键值来标识每个存储切片;

18、依次在目标存储切片中截取处于数据范围之间的数据作为目标数据。

19、可选地,对象表和存储切片表中关于大对象的数据按照大对象的存储参数进行压缩和加密;

20、在目标数据表中截取数据范围之间的数据作为目标数据的步骤之前还包括:对目标数据表中的数据进行解密和解压。

21、可选地,根据读取指令确定目标数据的数据范围的步骤之前还包括:根据目标数据的数据量建立缓冲区;

22、在目标数据表中截取数据范围之间的数据作为目标数据的步骤之后还包括:将目标数据复制到缓冲区中。

23、根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库的大对象读取方法的步骤。

24、根据本发明的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库的大对象读取方法的步骤。

25、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库的大对象读取方法的步骤。

26、本发明的数据库的大对象读取方法,获取读取指令,读取指令用于读取大对象的目标数据,大对象的数据分别存储于对象表和存储切片表中,对象表用于存储大对象的预读数据,预读数据为大对象在预设位置以前的数据,存储切片表用于存储大对象对应的存储切片数据,存储切片数据为大对象在预设位置以后的数据;根据读取指令确定目标数据的数据范围;根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表;在目标数据表中截取数据范围之间的数据作为目标数据。通过此方法可以根据需求在大对象对应的对象表和存储切片表中精确地获取目标数据,提升读取大对象数据的执行速度和效率。

27、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。



技术特征:

1.一种数据库的大对象读取方法,包括:

2.根据权利要求1所述的数据库的大对象读取方法,其中,

3.根据权利要求2所述的数据库的大对象读取方法,其中,

4.根据权利要求3所述的数据库的大对象读取方法,其中,

5.根据权利要求4所述的数据库的大对象读取方法,其中,

6.根据权利要求1所述的数据库的大对象读取方法,其中,

7.根据权利要求1所述的数据库的大对象读取方法,其中,

8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库的大对象读取方法的步骤。

9.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库的大对象读取方法的步骤。

10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至7任一项所述的数据库的大对象读取方法的步骤。


技术总结
本发明提供了一种数据库的大对象读取方法与相关产品。其中上述方法包括:获取读取指令,读取指令用于读取大对象的目标数据,大对象的数据分别存储于对象表和存储切片表中,对象表用于存储大对象的预读数据,预读数据为大对象在预设位置以前的数据,存储切片表用于存储大对象对应的存储切片数据,存储切片数据为大对象在预设位置以后的数据;根据读取指令确定目标数据的数据范围;根据数据范围从对象表和/或存储切片表中确定目标数据所在的目标数据表;在目标数据表中截取数据范围之间的数据作为目标数据。通过此方法可以根据需求在大对象对应的对象表和存储切片表中精确地获取目标数据,提升读取大对象数据的执行速度和效率。

技术研发人员:王伟,王建华
受保护的技术使用者:中电科金仓(北京)科技股份有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-23738.html

最新回复(0)