一种数据库连接池的访问方法、设备及可读存储介质与流程

allin2026-06-21  12


本申请属于数据库,具体而言涉及一种数据库连接池的访问方法、设备及可读存储介质。


背景技术:

1、目前数据库连接的技术方案是在应用程序中利用数据库连接池(databaseconnection pool)来使用已经建立起来的数据库连接,可以减少单独建立数据库连接的次数。通常数据库连接池中的数据库连接的状态主要有两种:在用和空闲。当用户请求数据库连接时,使用空闲的数据库连接,该数据库连接状态转化为在用;当用户完成数据库访问时,该数据库连接的状态转化为空闲。

2、虽然大多数数据库的访问都能快速返回结果,但不排除个别数据库访问为慢sql访问(花费较长的时间),这样就带来一个问题,该数据库连接将长时间被占用,影响其他用户访问数据库。

3、因此,如何解决数据库连接被长时间占用导致影响其他用户访问的问题是本领域值得研究的课题。


技术实现思路

1、鉴于上述的分析,本发明实施例旨在提供一种数据库连接池的访问方法、设备及可读存储介质,以解决现有数据库连接被长时间占用导致影响其他用户访问的问题。

2、本申请的一个方面提供了一种数据库连接池的访问方法,包括:

3、接收用户对数据库连接的访问请求;

4、探测数据库连接池中是否有处于空闲状态的连接;

5、如果所述数据库连接池中没有处于空闲状态的连接,则判断所述数据库连接池中是否有处于暂闲状态的连接;

6、如果有,则选择处于暂闲状态的第一连接执行访问请求,并将所述第一连接的状态更改为暂用状态;

7、执行访问请求成功后释放所述第一连接,并将所述第一连接的状态更改为暂闲状态;

8、其中,在所述访问请求为慢sql访问请求时,选择处于空闲状态的第二连接执行访问请求,请求发出后记录结果返回地址,释放所述第二连接,并将所述第二连接的状态修改为暂闲状态。

9、可选地,在所述访问请求为慢sql访问请求时,选择处于空闲状态的第二连接执行访问请求,请求发出后记录结果返回地址,释放所述第二连接,并将所述第二连接的状态修改为暂闲状态之后还包括:

10、启动轮询线程,每隔预设时间探测所述结果返回地址是否有结果返回;

11、如果有结果返回且启动轮询线程的数据库连接的状态为暂闲状态,则将返回的结果反馈至用户,并将启动轮询线程的数据库连接的状态更改为空闲状态,结束轮询线程。

12、可选地,在所述探测数据库连接池中是否有处于空闲状态的连接之后还包括:

13、如果所述数据库连接池中有处于空闲状态的连接,且所述访问请求不为慢sql访问请求时,选择处于空闲状态的第三连接执行访问请求,并将所述第三连接的状态更改为在用状态;执行访问请求成功后释放所述第三连接,并将所述第三连接的状态更改为空闲状态。

14、可选地,在所述判断所述数据库连接池中是否有处于暂闲状态的连接之后还包括:

15、在所述数据库连接池中没有处于暂闲状态的连接时,判断是否达到最大连接数;

16、如果没有达到最大连接数,则新建第四连接执行访问请求,并将所述第四连接的状态更改为在用状态;

17、执行访问请求成功后释放所述第四连接,并将所述第四连接的状态更改为空闲状态。

18、可选地,在所述判断所述数据库连接池中是否有处于暂闲状态的连接之后还包括:

19、在所述数据库连接池中没有处于暂闲状态的连接时,判断是否达到最大连接数;

20、如果达到最大连接数,则排队等待释放的处于空闲状态的连接;

21、探测数据库连接池中是否有处于空闲状态的连接;

22、如果有,则使用处于空闲状态的连接执行访问请求,并将该连接的状态更改为在用状态;

23、执行访问请求成功后释放该连接,并将该连接的状态更改为空闲状态。

24、可选地,判断所述访问请求是否为慢sql访问请求包括:

25、判断所述访问请求的执行耗时是否超过预设时间阈值,若执行耗时超过预设时间阈值则将所述访问请求确定为慢sql访问请求。

26、可选地,判断所述访问请求是否为慢sql访问请求包括:

27、建立慢sql库,用于存储慢sql语句;

28、将访问请求的语句与慢sql库中的sql语句进行比较,如果匹配成功则判断为慢sql访问请求。

29、可选地,判断所述访问请求是否为慢sql访问请求包括:

30、建立慢sql库,用于存储慢sql语句;

31、建立慢sql语句训练模型,使用初始慢sql样本来训练模型,利用初始慢sql样本和新加入的慢sql语句进行训练,对模型进行实时更新;

32、将访问请求的语句与慢sql库中的sql语句进行比较,如果不匹配则采用所述慢sql语句训练模型识别所述访问请求是否为慢sql访问请求。

33、本申请的第二方面,提供了一种数据库连接池的访问设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述任一种所述的数据库连接池的访问方法。

34、本申请的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述的数据库连接池的访问方法。

35、本申请所提供的数据库连接池的访问方法,接收用户对数据库连接的访问请求;探测数据库连接池中是否有处于空闲状态的连接;如果所述数据库连接池中没有处于空闲状态的连接,则判断所述数据库连接池中是否有处于暂闲状态的连接;如果有,则选择处于暂闲状态的第一连接执行访问请求,并将所述第一连接的状态更改为暂用状态;执行访问请求成功后释放所述第一连接,并将所述第一连接的状态更改为暂闲状态;其中,在所述访问请求为慢sql访问请求时,选择处于空闲状态的第二连接执行访问请求,请求发出后记录结果返回地址,释放所述第二连接,并将所述第二连接的状态修改为暂闲状态。本申请定义了两种新的数据库连接的状态:暂闲和暂用,使得慢sql访问请求不再长时间占用连接,其他用户可以更高效地利用数据库连接,提高了数据库的连接使用率。此外,本申请还提供了具有上述技术效果的数据库连接池的访问设备及计算机可读存储介质。



技术特征:

1.一种数据库连接池的访问方法,其特征在于,包括:

2.根据权利要求1所述的数据库连接池的访问方法,其特征在于,在所述访问请求为慢sql访问请求时,选择处于空闲状态的第二连接执行访问请求,请求发出后记录结果返回地址,释放所述第二连接,并将所述第二连接的状态修改为暂闲状态之后还包括:

3.根据权利要求1所述的数据库连接池的访问方法,其特征在于,在所述探测数据库连接池中是否有处于空闲状态的连接之后还包括:

4.根据权利要求1所述的数据库连接池的访问方法,其特征在于,在所述判断所述数据库连接池中是否有处于暂闲状态的连接之后还包括:

5.根据权利要求4所述的数据库连接池的访问方法,其特征在于,在所述判断所述数据库连接池中是否有处于暂闲状态的连接之后还包括:

6.根据权利要求1至5任一项所述的数据库连接池的访问方法,其特征在于,判断所述访问请求是否为慢sql访问请求包括:

7.根据权利要求1至5任一项所述的数据库连接池的访问方法,其特征在于,判断所述访问请求是否为慢sql访问请求包括:

8.根据权利要求1至5任一项所述的数据库连接池的访问方法,其特征在于,判断所述访问请求是否为慢sql访问请求包括:

9.一种数据库连接池的访问设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现根据权利要求1-8任一项所述的数据库连接池的访问方法。

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-8任一项所述的数据库连接池的访问方法。


技术总结
本申请涉及一种数据库连接池的访问方法、设备及可读存储介质,属于数据库技术领域。通过接收用户对数据库连接的访问请求;探测数据库连接池中是否有处于空闲状态的连接;如果没有则判断所述数据库连接池中是否有处于暂闲状态的连接;如果有,则选择处于暂闲状态的第一连接执行访问请求,并将所述第一连接的状态更改为暂用状态;执行访问请求成功后释放所述第一连接,并将所述第一连接的状态更改为暂闲状态;其中,在所述访问请求为慢SQL访问请求时,选择处于空闲状态的第二连接执行访问请求,请求发出后记录结果返回地址,释放所述第二连接,并将所述第二连接的状态修改为暂闲状态。本申请提高了数据库的连接使用率。

技术研发人员:李勇
受保护的技术使用者:精壹致远(武汉)信息技术有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-28622.html

最新回复(0)