数据库连接的分配方法和装置的制造方法

文档序号:9750806阅读:426来源:国知局
数据库连接的分配方法和装置的制造方法
【技术领域】
[0001]本申请涉及信息技术领域,尤其涉及一种数据库连接的分配方法和装置。
【背景技术】
[0002]进程要获取数据库中的数据,首先需要为进程分配数据连接。相关技术中,进程可以在数据库连接池中获取数据库连接,在并发获取时,为了避免同一个数据库连接被多个进程获取,在一个进程获取数据库连接时,需要进行加锁。但是,加锁会造成一定的性能下降。

【发明内容】

[0003]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0004]为此,本申请的一个目的在于提出一种数据库连接的分配方法,该方法可以在并发获取数据库连接时减少加锁,从而提高获取数据库连接的性能。
[0005]本申请的另一个目的在于提出一种数据库连接的分配装置。
[0006]为达到上述目的,本申请第一方面实施例提出的数据库连接的分配方法,包括:获取要与数据库建立连接的进程的信息;根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,所述数据库连接集合数组包括至少两个数据库连接集合;如果所述位置信息对应的数据库连接集合中存在空闲的数据库连接,则将所述空闲的数据库连接分配给所述进程。
[0007]本申请第一方面实施例提出的数据库连接的分配方法,通过根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,由于数据库连接集合数组中包括至少两个数据库连接集合,可以尽量将进程分配到不同的数据库连接集合中,从而减少在同一个数据库连接集合中并发的进程的数量,也就减少加锁的次数,甚至不需要加锁,提高获取数据库连接的性能。
[0008]为达到上述目的,本申请第二方面实施例提出的数据库连接的分配装置,包括:获取模块,用于获取要与数据库建立连接的进程的信息;确定模块,用于根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,所述数据库连接集合数组包括至少两个数据库连接集合;第一分配模块,用于如果所述位置信息对应的数据库连接集合中存在空闲的数据库连接,则将所述空闲的数据库连接分配给所述进程。
[0009]本申请第二方面实施例提出的数据库连接的分配装置,通过根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,由于数据库连接集合数组中包括至少两个数据库连接集合,可以尽量将进程分配到不同的数据库连接集合中,从而减少在同一个数据库连接集合中并发的进程的数量,也就减少加锁的次数,甚至不需要加锁,提高获取数据库连接的性能。
[0010]本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
【附图说明】
[0011]本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0012]图1是本申请一实施例提出的数据库连接的分配方法的流程示意图;
[0013]图2是本申请另一实施例提出的数据库连接的分配方法的流程示意图;
[0014]图3是本申请另一实施例提出的数据库连接的分配装置的结构示意图;
[0015]图4是本申请另一实施例提出的数据库连接的分配装置的结构示意图。
【具体实施方式】
[0016]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0017]图1是本申请一本实施例提出的数据库连接的分配方法的流程示意图,该方法包括:
[0018]Sll:获取要与数据库建立连接的进程的信息;
[0019]其中,进程的信息可以是指进程的编号,例如,进程要获取数据库连接时,可以向分配装置发送请求消息,该请求消息中包含进程的编号,分配装置从该请求消息中获取进程的编号。
[0020]S12:根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,所述数据库连接集合数组包括至少两个数据库连接集合。
[0021]其中,可以预先建立数据库连接集合数组,数据库连接集合数组中包括至少两个数据库连接集合,再根据进程的编号确定对应的数据库连接集合的位置信息。
[0022]可选的,所述根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,包括:
[0023]将所述进程的编号对所述数据库连接集合数组包括的数据库连接集合的总个数进行取模运算,得到取模后的数值;
[0024]将所述取模后的数值对应的位置信息,确定为所述需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息。
[0025]例如,数据库连接集合包括第一连接集合,第二连接集合,第三连接集合,考虑到取模后的值是从O开始,那么进程编号也可以从O开始,且数据库连接集合的序号也从O开始,从而找到对应的集合,例如,第一进程的编号是0,由于取模后的数值是0,则该第一进程的编号对应的位置信息是0,对应的数据库连接集合是第一连接集合,类似的,当进程的编号是I时,则对应的集合是第二连接集合。可以理解的是,假设进程的编号是从I开始,则可以将编号减I后再取模,确定对应的集合。
[0026]S13:如果所述位置信息对应的数据库连接集合中存在空闲的数据库连接,则将所述空闲的数据库连接分配给所述进程。
[0027]例如,第一进程的编号对应的数据库连接集合是第一连接集合,则如果第一连接集合中存在空闲的数据库连接,则将空闲的数据库连接分配给第一进程。
[0028]本实施例通过根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,由于数据库连接集合数组中包括至少两个数据库连接集合,可以尽量将进程分配到不同的数据库连接集合中,从而减少在同一个数据库连接集合中并发的进程的数量,也就减少加锁的次数,甚至不需要加锁,提高获取数据库连接的性能。
[0029]图2是本申请一本实施例提出的数据库连接的分配方法的流程示意图,该方法包括:
[0030]S201:初始化,所述初始化包括:设置数据库连接集合数组,所述数据库连接集合数组由至少两个数据库连接集合组成,设置每个数据库连接集合中包含的最小连接数量和最大连接数量,并在每个数据库连接集合中创建数量为所述最小连接数量的数据库连接。
[0031]其中,可以预先设置数据库连接集合的个数,并设置每个集合中创建的数据库连接的最小个数。
[0032]在初始化时,可以建立预设个数的数据库连接集合,并在每个数据库连接集合中创建最小个数的数据库连接。
[0033]通过创建最小个数的数据库连接,可以尽量降低资源开销。
[0034]在进程请求数据库连接的请求开始后,可以执行如下步骤:
[0035]S202:获取进程的编号,并根据进程的编号确定对应的数据库连接集合。
[0036]例如,根据进程的编号和数据库连接集合的总数取模,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1