重用数据库连接池中的连接

时间:2019-07-15 06:51:36

标签: mysql mongodb tcp connection-pooling

据我了解,数据库连接池通常以这种方式工作:

  1. 在应用初始化期间创建n个连接并将其放入缓存(例如列表)
  2. 线程需要连接才能对数据库执行某些操作,并在连接完成后返回连接
  3. 当缓存中没有可用的连接时,步骤2中的线程将在等待将连接推回到缓存中

我的问题是

从池中获取一个数据库后,是否可以通过一个连接执行多个数据库操作,而不是先执行一个数据库操作然后放回数据库?它似乎更有效,因为它节省了获取和恢复连接的时间。 (在多线程情况下,当addget来自连接池时,必须有一定的锁定成本)

有人可以帮忙吗? ks!

1 个答案:

答案 0 :(得分:2)

是的,每次从池中获取数据库连接时,都可以将其用于多个操作,并且这种行为对于使用池的数据库应用程序来说很典型。例如,在处理对REST服务的请求期间,连接可能只获得一次,并可以重复用于若干操作。这个生命周期通常还涉及将这些操作作为数据库中的单个事务进行管理。