本发明涉及数据库,特别是涉及一种数据库中临时大对象的存储方法及相关产品。
背景技术:
1、大对象(large object)是数据库中的一类特殊的数据类型,主要有二进制大对象(binary large object,简称blob)和大文本对象(character large object/nationalcharacter large object,简称clob/nclob)两大类。blob用来存储二进制大型对象数据,例如图像、音频文件、视频或其他非文本格式的数据;clob和nclob则用于存储大量的字符数据,适合于存放长文本如文章、报告或者xml文档等。这类数据单个数据项的体量上限很高,最高可达gb级甚至tb级,同时体量差异又很大,数据量小的也可以小到几个字节,甚至为空。
2、在数据库运行过程中,有时需要创建一些临时大对象。它们并不属于任何一个用户业务表(基表)。因此在session启动后,需要将此类临时大对象进行单独存储,避免session结束后,临时大对象仍然存储于数据库中,浪费数据库的存储空间等资源。
技术实现思路
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、根据目标会话生成唯一标识,唯一标识为uuid类型;
28、根据预设规则为唯一标识添加固定标识,从而得到临时大对象登记表的表名。
29、根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库中临时大对象的存储方法的步骤。
30、根据本发明的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库中临时大对象的存储方法的步骤。
31、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库中临时大对象的存储方法的步骤。
32、本发明的数据库中临时大对象的存储方法,首先确定数据库中的目标会话;随后获取目标会话中待存储的临时大对象,作为临时存储目标;接着根据目标会话生成临时大对象登记表并建立临时大对象存储表,临时大对象登记表用于记录临时存储目标的引用信息,临时大对象存储表用于记录临时存储目标的数据且与临时大对象登记表对应。通过此方法能够在数据库中单独存储临时大对象,并保证临时大对象的生命周期与会话一致,避免数据库存储资源的浪费,提高数据库的性能。
33、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种数据库中临时大对象的存储方法,包括:
2.根据权利要求1所述的数据库中临时大对象的存储方法,其中,
3.根据权利要求1所述的数据库中临时大对象的存储方法,其中,
4.根据权利要求1所述的数据库中临时大对象的存储方法,其中,
5.根据权利要求4所述的数据库中临时大对象的存储方法,其中,
6.根据权利要求5所述的数据库中临时大对象的存储方法,其中,
7.根据权利要求4所述的数据库中临时大对象的存储方法,其中,
8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库中临时大对象的存储方法的步骤。
9.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库中临时大对象的存储方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至7任一项所述的数据库中临时大对象的存储方法的步骤。