数据库表间的数据延迟加载方法、装置及服务器制造方法及图纸

技术编号:36033148 阅读:12 留言:0更新日期:2022-12-21 10:35
本公开提供的一种数据库表间的数据延迟加载方法、装置及服务器,涉及计算机技术,包括:获取第一模型对象和第一数据库表的第一映射关系,第二模型对象和第二数据库表的第二映射关系;根据映射关系,确定第一模型对象实例、第二模型对象实例;根据第一模型对象实例的预设第一字段,确定根据预设第一字段加载第二模型对象实例中预设第二字段的数据加载函数;在数据加载函数中注入延迟加载属性,得到数据延迟加载函数。本方案,可以利用模型对象实例,确定库表间的数据加载函数,然后在数据加载函数中注入延迟加载属性,得到数据延迟加载函数。实现了数据库禁用外键情境下,库表间数据的延迟加载,且只加载需要字段的数据,从而可以减小性能消耗。小性能消耗。小性能消耗。

【技术实现步骤摘要】
数据库表间的数据延迟加载方法、装置及服务器


[0001]本公开涉及计算机技术,尤其涉及一种数据库表间的数据延迟加载方法、装置及服务器。

技术介绍

[0002]目前,数据库通过引入外键使表和表间多了一层外键约束,减少了数据冗余。通过引入延迟加载,可以在真正使用对象数据的时候才创建,进而可以提高程序执行效率。然而,目前业界的一些做法往往限制外键的使用。因此,在禁用外键的背景下,怎样做到数据库表间的关联,并定义延迟加载,是亟需解决的问题。
[0003]现有技术中,在禁用外键的背景下,利用编程语言python的sqlalchemy,根据relation关系定义延迟加载,可以做到需要的时候才加载相关的数据库表。可以显性的进行数据库表的加载。
[0004]但是,上述方式中显性的进行数据库表的加载,即加载数据库表中的所有信息,而加载数据库表中大量的无关信息,将造成非常大的性能消耗。

技术实现思路

[0005]本公开提供了一种数据库表间的数据延迟加载方法、装置及服务器,以解决现有技术中在数据库禁用外键的情况下,只能显性的进行数据库表的数据加载,而加载数据库表中大量的无用信息,造成的非常大的性能消耗的问题。
[0006]根据本公开第一方面,提供了一种数据库表间的数据延迟加载方法,包括:
[0007]获取数据加载请求,并根据所述数据加载请求,获取预先配置的第一模型对象和第一数据库表的第一映射关系,以及第二模型对象和第二数据库表的第二映射关系;
[0008]根据所述第一映射关系,确定与所述第一数据库表对应的第一模型对象实例;并根据所述第二映射关系,确定与所述第二数据库表对应的第二模型对象实例;
[0009]根据所述第一模型对象实例中的预设第一字段,确定根据所述预设第一字段加载所述第二模型对象实例中预设第二字段中数据的数据加载函数;
[0010]在所述数据加载函数中注入延迟加载属性,得到数据延迟加载函数;所述数据延迟加载函数用于根据所述预设第一字段延迟加载所述预设第二字段中的数据;并根据所述数据加载请求,返回所述数据延迟加载函数加载的数据。
[0011]根据本公开第二方面,提供了一种数据库表间的数据延迟加载装置,包括:
[0012]获取单元,用于获取数据加载请求,并根据所述数据加载请求,获取预先配置的第一模型对象和第一数据库表的第一映射关系,以及第二模型对象和第二数据库表的第二映射关系;
[0013]确定单元,用于根据所述第一映射关系,确定与所述第一数据库表对应的第一模型对象实例;并根据所述第二映射关系,确定与所述第二数据库表对应的第二模型对象实例;
[0014]加载单元,用于根据所述第一模型对象实例中的预设第一字段,确定根据所述预设第一字段加载所述第二模型对象实例中预设第二字段中数据的数据加载函数;
[0015]所述加载单元,还用于在所述数据加载函数中注入延迟加载属性,得到数据延迟加载函数;所述数据延迟加载函数用于根据所述预设第一字段延迟加载所述预设第二字段中的数据;并根据所述数据加载请求,返回所述数据延迟加载函数加载的数据。
[0016]根据本公开第三方面,提供了一种电子设备,包括存储器和处理器;其中,
[0017]所述存储器,用于存储计算机程序;
[0018]所述处理器,用于读取所述存储器存储的计算机程序,并根据所述存储器中的计算机程序执行如第一方面所述的数据库表间的数据延迟加载方法。
[0019]根据本公开第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面所述的数据库表间的数据延迟加载方法。
[0020]根据本公开第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如第一方面所述的数据库表间的数据延迟加载方法。
[0021]本公开提供的数据库表间的数据延迟加载方法、装置及服务器,包括:获取数据加载请求,并根据数据加载请求,获取预先配置的第一模型对象和第一数据库表的第一映射关系,以及第二模型对象和第二数据库表的第二映射关系;根据第一映射关系,确定与第一数据库表对应的第一模型对象实例;并根据第二映射关系,确定与第二数据库表对应的第二模型对象实例;根据第一模型对象实例中的预设第一字段,确定根据预设第一字段加载第二模型对象实例中预设第二字段中数据的数据加载函数;在数据加载函数中注入延迟加载属性,得到数据延迟加载函数;数据延迟加载函数用于根据预设第一字段延迟加载预设第二字段中的数据;并根据数据加载请求,返回数据延迟加载函数加载的数据。本方案提供的数据库表间的数据延迟加载方法、装置及服务器中,可以利用模型对象实例,确定数据库表间的数据加载函数,然后在数据加载函数中注入延迟加载属性,得到数据延迟加载函数。实现了数据库禁用外键情境下,数据库表间数据的延迟加载,且只加载需要字段的数据,从而可以减小性能消耗。
附图说明
[0022]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本公开一示例性实施例示出的数据库表间的数据延迟加载方法的流程示意图;
[0024]图2为本公开另一示例性实施例示出的数据库表间的数据延迟加载方法的流程示意图;
[0025]图3为本公开一示例性实施例示出的数据库表间的数据延迟加载过程示意图;
[0026]图4为本公开一示例性实施例示出的数据库表间的数据延迟加载装置的结构图;
[0027]图5为本公开另一示例性实施例示出的数据库表间的数据延迟加载装置的结构
图;
[0028]图6为本公开一示例性实施例示出的电子设备的结构图。
具体实施方式
[0029]目前,数据库通过引入外键使表和表间多了一层外键约束,减少了数据冗余。通过引入延迟加载,可以在真正使用对象数据的时候才创建,进而可以提高程序执行效率。因此,可以依赖于数据库层面外键的定义,依托关联关系做到对象的关联,同时在使用的时候,根据延迟加载的配置进行对象加载,进而实现数据库表间的延迟加载。然而,目前业界的一些做法往往限制外键的使用。在禁用外键的技术背景下,在框架层面就无法直接实现数据库表间的延迟加载。因此,在禁用外键的背景下,怎样做到数据库表间的关联,并定义延迟加载,是亟需解决的问题。
[0030]现有技术中,在禁用外键的背景下,可以利用python的sqlalchemy,根据relation关系定义延迟加载,预加载等多种策略,可以在select、join、subselect等多种场景下进行。但是在模型的定义中,依赖于外键的定义。可以做到需要的时候才加载相关的数据库表。可以显性的进行数据库表的加载。
[0031]但是,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库表间的数据延迟加载方法,其特征在于,包括:获取数据加载请求,并根据所述数据加载请求,获取预先配置的第一模型对象和第一数据库表的第一映射关系,以及第二模型对象和第二数据库表的第二映射关系;根据所述第一映射关系,确定与所述第一数据库表对应的第一模型对象实例;并根据所述第二映射关系,确定与所述第二数据库表对应的第二模型对象实例;根据所述第一模型对象实例中的预设第一字段,确定根据所述预设第一字段加载所述第二模型对象实例中预设第二字段中数据的数据加载函数;在所述数据加载函数中注入延迟加载属性,得到数据延迟加载函数;所述数据延迟加载函数用于根据所述预设第一字段延迟加载所述预设第二字段中的数据;并根据所述数据加载请求,返回所述数据延迟加载函数加载的数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一模型对象实例中的预设第一字段,确定根据所述预设第一字段加载所述第二模型对象实例中预设第二字段中数据的数据加载函数,包括:将所述预设第一字段,与所述第二模型对象实例中的预设第三字段进行关联;其中,所述预设第一字段中的数据与所述预设第三字段中的数据相同,且所述预设第三字段为所述第二模型对象实例中的唯一标识;根据所述预设第一字段与所述预设第三字段的关联关系,确定根据所述预设第一字段加载所述预设第二字段中数据的数据加载函数。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射关系,确定与所述第一数据库表对应的第一模型对象实例,包括:根据所述第一映射关系,对所述第一模型对象进行序列化、实例化处理,得到与所述第一数据库表对应的第一模型对象实例。4.根据权利要求1所述的方法,其特征在于,所述根据所述第二映射关系,确定与所述第二数据库表对应的第二模型对象实例,包括:根据所述第二映射关系,对所述第二模型对象进行序列化、实例化处理,得到与所述第二数据库表对应的第二模型对象实例。5.根据权利要求...

【专利技术属性】
技术研发人员:谢立东
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1