数据库表查询方法、计算机设备及计算机存储介质与流程
未命名
07-13
阅读:174
评论:0
1.本技术实施例涉及数据查询领域,具体涉及一种数据库表查询方法、计算机设备及计算机存储介质。
背景技术:
2.宽表是具有大量字段的数据库表,通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。宽表可以把不同的内容都放在同一张表存储,宽表的好处就是查询性能的提高与便捷。
3.在一些业务场景中,用户需要对多个数据源进行联合查询(union查询)以获取其所需的数据,这涉及到针对多张宽表的union查询。然而,多个数据源union查询时需要同时对这多个数据源进行遍历和搜索,因而需要在一个时间段内消耗大量的处理资源,而现有技术对多张宽表的union查询效率不高,且短时间内消耗大量处理资源还可能导致设备宕机。
技术实现要素:
4.本技术实施例提供了一种数据库表查询方法、计算机设备及计算机存储介质,用于提升数据库表数据的查询效率。
5.本技术实施例第一方面提供了一种数据库表查询方法,所述方法应用于计算机设备,所述方法包括:
6.获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;
7.根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;
8.根据所述多个数据库表的生成顺序构建邻接表有向图模型;
9.根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;
10.按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果。
11.本技术实施例第二方面提供了一种计算机设备,所述计算机设备包括:
12.第一获取单元,用于获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;
13.第二获取单元,用于根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;
14.生成单元,用于根据所述多个数据库表的生成顺序构建邻接表有向图模型;
15.确定单元,用于根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;
16.汇总单元,用于按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果。
17.本技术实施例第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述第一方面的方法。
18.本技术实施例第四方面提供了一种计算机存储介质,计算机存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第一方面的方法。
19.本技术实施例第五方面提供了一种计算机程序产品,所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行前述第一方面的方法。
20.从以上技术方案可以看出,本技术实施例具有以下优点:
21.本实施例中,在对数据源进行查询时,可根据数据源生成多个数据库表,再根据多个数据库表的生成顺序构建邻接表有向图模型,根据邻接表有向图模型确定数据库表队列,再按照数据库表队列中多个数据库表的顺序依次将每个数据库表插入查询结果表中,得到联合查询结果,完成数据源的查询。由于邻接表有向图模型直观表示了各个数据库表先后的生成顺序,因此根据邻接表有向图模型可快速确定数据库表队列,进而可快速汇总数据库表队列中多个数据库表获得联合查询结果,从而避免了短时间内消耗大量的处理资源,可保证在进行数据源查询时设备不发生宕机,且能够提升数据查询的效率。
附图说明
22.图1为本技术实施例中网络框架示意图;
23.图2为本技术实施例中数据库表查询方法一个流程示意图;
24.图3为本技术实施例中数据库表查询方法另一流程示意图;
25.图4为本技术实施例中邻接表有向图模型一种显示效果示意图;
26.图5为本技术实施例中计算机设备一个结构示意图;
27.图6为本技术实施例中计算机设备另一结构示意图。
具体实施方式
28.本技术实施例提供了一种数据库表查询方法、计算机设备及计算机存储介质,用于提升数据库表数据的查询效率。
29.请参阅图1,本技术实施例中网络框架包括:
30.业务服务器100以及终端集群;终端集群可以包括:终端设备200a、终端设备200b、终端设备200c、
……
、终端设备200n等终端设备。
31.其中,上述业务服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备(包括终端设备200a、终端设备200b、终端设备200c、
……
、终端设备200n)可以是智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备(例如智能手表、智能手环等)、智能电脑、智能车载等智能终端。
32.其中,业务服务器100与终端集群中的各终端设备可以建立通信连接,终端集群中的各终端设备之间也可建立通信连接。换句话说,业务服务器100可与终端设备200a、终端设备200b、终端设备200c、
……
、终端设备200n中的各终端设备建立通信连接,例如终端设
备200a与业务服务器100之间可建立通信连接。终端设备200a与终端设备200b之间可建立通信连接,终端设备200a与终端设备200c之间也可建立通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接等,具体可根据实际应用场景确定,本技术在此不做限制。
33.应该理解,如图1所示的终端集群中的每个终端设备均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可分别与业务服务器100之间进行数据交互,使得业务服务器100可以接收来自于每个终端设备的业务数据。其中,该应用客户端可以为财务管理应用、企业事务管理应用、浏览器应用、社交应用、即时通信应用、直播应用、游戏应用、短视频应用、视频应用、音乐应用、购物应用、小说应用、支付应用等具有显示文字、图像、音频以及视频等数据信息功能的应用客户端,具体可根据实际应用场景需求确定,在此不做限制。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如财务管理客户端、企业事务管理客户端等)中的嵌入式子客户端,具体可根据实际应用场景确定,在此不做限定。
34.下面将结合图1的网络框架,对本技术实施例中的数据库表查询方法进行描述:
35.请参阅图2,本技术实施例中数据库表查询方法一个实施例包括:
36.201、获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;
37.本实施例的方法可应用于计算机设备,该计算机设备可以是图1所示网络框架中的业务服务器100或者各终端设备。计算机设备可接收用户的业务查询请求,该业务查询请求为针对多个数据库表的联合查询请求。其中,联合查询(union查询)是指将多次查询的结果合并起来,形成一个新的查询结果集。联合查询使用的关键字为union,通过union可以将多次查询的结果连接起来,形成一个新的查询结果集。联合查询有2种方式,一种是unionall一种是union,union会对联合查询出的结果集去重,union all则会显示出所有的查询结果。
38.202、根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;
39.计算机设备可获取数据源,并根据该数据源生成多个数据库表。数据库表可汇集该数据源中大量的字段,以提升数据的查询性能,提升数据的查询效率。数据库表可以是宽表,宽表即集成了大量字段的数据库表,通常是与业务主题相关的指标、维度、属性关联在一起的多个字段。
40.其中,该数据源可以是任意来源的数据,例如可以是业务活动初始生成的原始数据库表,如企业刚组建时初始建立的员工信息表;也可以是根据该原始数据库表生成的数据库表等,如在企业刚组建时初始建立员工信息表之后,根据该员工信息表生成的组织架构表等等。以上数据库表均可作为数据源并用于生成多个数据库表。
41.203、根据所述多个数据库表的生成顺序构建邻接表有向图模型;
42.在获得多个数据库表之后,可根据多个数据库表的生成顺序构建邻接表有向图模型。邻接表有向图模型表示了多个数据库表之间的关系,如生成关系等等。
43.204、根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;
44.由于邻接表有向图模型可表示数据库表之间的关系,即邻接表有向图模型可表示数据库表的先后生成顺序,因此可根据邻接表有向图模型所表示的数据库表先后生成顺序确定数据库表队列,数据库表队列即包括了多个数据库表。
45.205、按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果;
46.在确定数据库表队列之后,可按照数据库表队列中多个数据库表的排序依次将数据库表队列中每个数据库表插入查询结果表中,得到联合查询结果,完成数据源的查询。
47.本实施例中,在对数据源进行联合查询时,可根据数据源生成多个数据库表,再根据多个数据库表的生成顺序构建邻接表有向图模型,根据邻接表有向图模型确定数据库表队列,再按照数据库表队列中多个数据库表的顺序依次将每个数据库表插入查询结果表中,得到联合查询结果,完成数据源的联合查询。由于邻接表有向图模型直观表示了各个数据库表先后的生成顺序,因此根据邻接表有向图模型可快速确定数据库表队列,进而可快速汇总数据库表队列中多个数据库表获得联合查询结果,从而避免了短时间内消耗大量的处理资源,可保证在进行数据源查询时设备不发生宕机,且能够提升数据联合查询的效率。
48.下面将在前述图2所示实施例的基础上,进一步详细地描述本技术实施例。请参阅图3,本技术实施例中数据库表查询方法另一实施例包括:
49.301、获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;
50.本实施例中,在需要从多个数据库表中查询数据时,用户可通过终端设备向计算机设备发送业务查询请求,以指示计算机设备对多个数据库表进行联合查询,并返回联合查询结果。
51.302、获取数据源,确定所述数据源符合预设要求;
52.本实施例中,在获取到数据源之后,可判断该数据源是否符合预设要求。若是,则可继续执行后续步骤303;若数据源不符合预设要求,则需要对该数据源进行一定处理以使其满足该预设条件。
53.具体的,判断该数据源是否符合预设要求,可以是判断该数据源的数据量是否符合预设数据量,若是,则可继续执行后续步骤303;若该数据源的数据量超出预设数据量,则需要对该数据源进行分段,得到多个数据源分段,并在执行步骤303时,分别将每个数据源分段插入一个临时表中,并为每个已插入该数据源分段的临时表建立索引,得到多个数据库表。
54.此外,判断该数据源是否符合预设要求的方式还可以是,判断该数据源的全表遍历时间是否符合预设遍历时间,若是,则可继续执行后续步骤303;若该数据源的全表遍历时间超出预设遍历时间,则对该数据源进行分段,得到多个数据源分段,并在执行步骤303时,分别将每个数据源分段插入一个临时表中,并为每个已插入该数据源分段的临时表建立索引,得到多个数据库表。
55.303、根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;
56.本实施例中,计算机设备获取的数据源可以是多个,并可根据其获取的多个数据源生成多个数据库表。例如,多个数据源包括数据源a、数据源b和数据源c、数据源d,数据源
a为企业员工的基本信息表(包括姓名、年龄、性别等基本信息),数据源b为企业员工的职位表,数据源c为企业员工的所属部门表,数据源d为企业员工的考勤表。因此,当需要查询年龄小于20的男员工的工时等情况时,即需要获取的字段包括:姓名、年龄、性别、部门名称、工时等等,此时可从上述数据源abcd联合查询得到,并将查询结果汇总到数据库表中,从而生成第一数据库表。
57.其中,在从数据源提取相应的信息至数据库表中时,可使用sql查询语句从数据源中提取出相应的数据,并使用union或者unionall等方法汇总从数据源中提取出的数据,从而实现第一数据库表的生成。
58.本实施例中,为便于对数据源进行查询,提升数据查询效率,可对数据源进行分段,得到多个数据源分段,再分别将每个数据源分段插入一个临时表中,并为每个已插入数据源分段的临时表建立索引,得到多个第一数据库表。因此,将数据源拆分为多个分段并分多个操作分别查询,相比于对单个数据源进行数据查询,可提升数据查询效率。
59.在生成多个第一数据库表之后,可依次根据该多个第一数据库表中的一个或多个以及多个数据源,生成多个第二数据库表。
60.例如,沿用上述例子,用户的业务查询请求是查询所有员工的工时,则计算机设备获取上述的数据源abcd,首先查询年龄小于20的男员工的工时得到第一数据库表,记为数据库表f;之后,进一步查询年龄小于20的员工(包括男女员工)的工时,此时需要根据数据源abcd和数据库表f进行联合查询,即“年龄小于20的女员工的工时union数据库表f”,得到数据库表d;进一步查询30≤年龄《40的员工的工时,此时需要根据数据源abcd进行联合查询,得到数据库表e;进一步查询年龄小于40的员工的工时,此时需要根据数据源abcd和数据库表d、数据库表e进行联合查询,即“20≤年龄《30的员工的工时union数据库表dunion数据库表e”,得到数据库表b;进一步查询40≤年龄《50的员工的工时,此时需要根据数据源abcd进行联合查询,得到数据库表c;最后查询所有员工的工时,此时需要根据数据源abcd和数据库表b、数据库表c进行联合查询,即“年龄≥50的员工的工时union数据库表bunion数据库表c”,得到数据库表a。因此,数据库表a即记录了所有员工的工时情况,即为用户所需要查询的数据。
61.其中,数据库表d和数据库表b、数据库表a即为根据多个数据源以及一个或多个第一数据库表生成的第二数据库表。其中,在从第一数据库表提取相应的信息至第二数据库表中时,可使用sql查询语句从第一数据库表中提取出相应的数据,并使用union或者unionall等方法汇总从第一数据库表中提取出的数据,从而实现第二数据库表的生成。
62.304、根据所述多个数据库表的生成顺序构建邻接表有向图模型;
63.由于第一数据库表和第二数据库表之间有先后的生成顺序,因此,可根据多个第一数据库表和多个第二数据库表的生成顺序构建邻接表有向图模型。
64.例如,沿用前一步骤的例子,在生成上述第一数据库表和第二数据库表之后,可根据上述第一数据库表和第二数据库表的生成顺序构建邻接表有向图模型,其图示可如图4所示,由图可看出,数据库表d根据数据库表f生成,数据库表b根据数据库表d和数据库表e生成,数据库表a根据数据库表b和数据库表c生成。
65.305、根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;
66.由于邻接表有向图模型表示了第一数据库表和第二数据库表之间先后的生成顺序,因此,可基于该先后的生成顺序确定数据库表队列,即数据库表队列也表示了第一数据库表和第二数据库表之间先后的生成顺序。
67.例如,沿用前一步骤的例子,在生成邻接表有向图模型之后,可根据该邻接表有向图模型表示的数据库表生成顺序确定数据库表队列,得到的队列从左至右的排序为f-d-e-b-c-a。因此,数据库表队列也表示了第一数据库表和第二数据库表之间的排序方式。
68.306、按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果;
69.在确定出数据库表队列之后,可按照数据库表队列中多个数据库表的顺序依次将数据库表队列中的每个数据库表插入查询结果表中,完成数据库表数据的汇总。
70.例如,沿用前一步骤的例子,在获得数据库表队列之后,可依次将数据库表f、数据库表d、数据库表e、数据库表b、数据库表c和数据库表a依次插入查询结果表中,完成对多个数据源的数据查询和查询结果汇总。
71.其中,可根据广度优先遍历算法确定数据库表队列中多个数据库表的生成顺序,并按照该生成顺序依次将数据库表队列中的每个数据库表插入查询结果表中。
72.因此,基于本实施例的方案,可解决多张数据库表union查询时无法获得查询结果的问题,也可以节省系统处理资源的消耗,避免耗费大量的处理资源和性能,从而避免系统发生卡死、崩溃等事故风险。
73.上面对本技术实施例中的数据库表查询方法进行了描述,下面对本技术实施例中的计算机设备进行描述,请参阅图5,本技术实施例中计算机设备一个实施例包括:
74.第一获取单元501,用于获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;
75.第二获取单元502,用于根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;
76.生成单元503,用于根据所述多个数据库表的生成顺序构建邻接表有向图模型;
77.确定单元504,用于根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;
78.汇总单元505,用于按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果。
79.本实施例一种优选的实施方式中,汇总单元505具体用于根据广度优先遍历算法确定所述数据库表队列中多个数据库表的生成顺序;按照所述生成顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中。
80.本实施例一种优选的实施方式中,所述计算机设备还包括:
81.判断单元506,用于判断所述数据源的数据量是否符合预设数据量;
82.第二获取单元502具体用于当所述数据源的数据量符合预设数据量时,根据所述多个数据源生成所述多个数据库表;
83.所述计算机设备还包括:
84.数据分段单元507,用于当所述数据源的数据量不符合所述预设数据量时,对所述数据源进行分段,得到多个数据源分段;
85.第二获取单元502具体用于,若所述数据源的数据量不符合所述预设数据量,则分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。
86.本实施例一种优选的实施方式中,判断单元506还用于判断所述数据源的全表遍历时间是否符合预设遍历时间;
87.第二获取单元502具体用于当所述数据源的全表遍历时间符合预设遍历时间时,根据所述多个数据源生成所述多个数据库表;
88.数据分段单元507还用于当所述数据源的全表遍历时间不符合预设遍历时间时,对所述数据源进行分段,得到多个数据源分段;
89.第二获取单元502具体用于,若所述数据源的全表遍历时间不符合预设遍历时间,则分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。
90.本实施例一种优选的实施方式中,第二获取单元502具体用于根据所述业务查询请求获取多个第一数据库表和多个第二数据库表,所述第一数据库表根据多个数据源生成,所述第二数据库表根据所述第一数据库表和所述多个数据源生成。
91.本实施例一种优选的实施方式中,第二获取单元502具体用于获取所述多个数据源,每个所述数据源包括对应于所述业务查询请求的数据;根据所述多个数据源生成所述多个第一数据库表;根据所述多个数据源、一个或多个所述第一数据库表,生成所述多个第二数据库表。
92.本实施例一种优选的实施方式中,第二获取单元502具体用于对所述数据源进行分段,得到多个数据源分段;分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。
93.本实施例中,计算机设备中各单元所执行的操作与前述图2至图3所示实施例中描述的类似,此处不再赘述。
94.本实施例中,在对数据源进行查询时,可根据数据源生成多个数据库表,再根据多个数据库表的生成顺序构建邻接表有向图模型,根据邻接表有向图模型确定数据库表队列,再按照数据库表队列中多个数据库表的顺序依次将每个数据库表插入查询结果表中,得到联合查询结果,完成数据源的查询。由于邻接表有向图模型直观表示了各个数据库表先后的生成顺序,因此根据邻接表有向图模型可快速确定数据库表队列,进而可快速汇总数据库表队列中多个数据库表获得联合查询结果,从而避免了短时间内消耗大量的处理资源,可保证在进行数据源查询时设备不发生宕机,且能够提升数据查询的效率。
95.下面对本技术实施例中的计算机设备进行描述,请参阅图6,本技术实施例中计算机设备一个实施例包括:
96.该计算机设备600可以包括一个或一个以上中央处理器(central processingunits,cpu)601和存储器605,该存储器605中存储有一个或一个以上的应用程序或数据。
97.其中,存储器605可以是易失性存储或持久存储。存储在存储器605的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器601可以设置为与存储器605通信,在计算机设备600上执行存储器605中的
一系列指令操作。
98.计算机设备600还可以包括一个或一个以上电源602,一个或一个以上有线或无线网络接口603,一个或一个以上输入输出接口604,和/或,一个或一个以上操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。
99.该中央处理器601可以执行前述图2至图3所示实施例中计算机设备所执行的操作,具体此处不再赘述。
100.本技术实施例还提供了一种计算机存储介质,其中一个实施例包括:该计算机存储介质中存储有指令,该指令在计算机上执行时,使得该计算机执行前述图2至图3所示实施例中计算机设备所执行的操作。
101.本技术实施例还提供了一种计算机程序产品,其中一个实施例包括:该计算机程序产品在计算机设备上运行时,使得该计算机设备执行前述图2至图3所示实施例中计算机设备所执行的操作。
102.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
103.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
104.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
105.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
106.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:
1.一种数据库表查询方法,其特征在于,所述方法包括:获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;根据所述多个数据库表的生成顺序构建邻接表有向图模型;根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果。2.根据权利要求1所述的方法,其特征在于,所述按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,包括:根据广度优先遍历算法确定所述数据库表队列中多个数据库表的生成顺序;按照所述生成顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中。3.根据权利要求1所述的方法,其特征在于,根据所述多个数据源生成所述多个数据库表之前,所述方法还包括:判断所述数据源的数据量是否符合预设数据量;若是,则根据所述多个数据源生成所述多个数据库表;若否,则对所述数据源进行分段,得到多个数据源分段;所述根据所述多个数据源生成所述多个数据库表,包括:若所述数据源的数据量不符合所述预设数据量,则分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。4.根据权利要求1所述的方法,其特征在于,根据所述多个数据源生成所述多个数据库表之前,所述方法还包括:判断所述数据源的全表遍历时间是否符合预设遍历时间;若是,则根据所述多个数据源生成所述多个数据库表;若否,则对所述数据源进行分段,得到多个数据源分段;所述根据所述多个数据源生成所述多个数据库表,包括:若所述数据源的全表遍历时间不符合预设遍历时间,则分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。5.根据权利要求1所述的方法,其特征在于,所述根据所述业务查询请求获取所述数据库表,包括:根据所述业务查询请求获取多个第一数据库表和多个第二数据库表,所述第一数据库表根据多个数据源生成,所述第二数据库表根据所述第一数据库表和所述多个数据源生成。6.根据权利要求5所述的方法,其特征在于,所述根据所述业务查询请求获取多个第一数据库表和多个第二数据库表,包括:获取所述多个数据源,每个所述数据源包括对应于所述业务查询请求的数据;根据所述多个数据源生成所述多个第一数据库表;根据所述多个数据源、一个或多个所述第一数据库表,生成所述多个第二数据库表。
7.根据权利要求1至6任一项所述的方法,其特征在于,根据所述多个数据源生成多个数据库表,包括:对所述数据源进行分段,得到多个数据源分段;分别将每个所述数据源分段插入一个临时表中,并为每个已插入所述数据源分段的临时表建立索引,得到所述多个数据库表。8.一种计算机设备,其特征在于,所述计算机设备包括:第一获取单元,用于获取业务查询请求,所述业务查询请求为针对多个数据库表的联合查询请求;第二获取单元,用于根据所述业务查询请求获取所述数据库表,所述数据库表根据多个数据源生成;生成单元,用于根据所述多个数据库表的生成顺序构建邻接表有向图模型;确定单元,用于根据所述邻接表有向图模型确定数据库表队列,所述数据库表队列包括所述多个数据库表;汇总单元,用于按照所述数据库表队列中多个数据库表的顺序依次将所述数据库表队列中的每个数据库表插入查询结果表中,得到联合查询结果。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至7中任一项所述的方法。
技术总结
本申请实施例公开了一种数据库表查询方法、计算机设备及计算机存储介质。在对数据源进行查询时,可根据数据源生成多个数据库表,再根据多个数据库表的生成顺序构建邻接表有向图模型,根据邻接表有向图模型确定数据库表队列,再按照数据库表队列中多个数据库表的顺序依次将每个数据库表插入查询结果表中,得到联合查询结果,完成数据源的查询。由于邻接表有向图模型直观表示了各个数据库表先后的生成顺序,因此根据邻接表有向图模型可快速确定数据库表队列,进而可快速汇总数据库表队列中多个数据库表获得联合查询结果,从而避免了短时间内消耗大量的处理资源,可保证在进行数据源查询时设备不发生宕机,且能够提升数据查询的效率。的效率。的效率。
技术研发人员:何俊 宋亚萍 黄乃华 罗碧 吴炎旺
受保护的技术使用者:金蝶软件(中国)有限公司
技术研发日:2023.03.23
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种新型吧台椅的制作方法 下一篇:一种防冲刷的河堤护坡网的制作方法
