什么是数据库池?
我只是想知道数据库连接池的概念以及如何实现。
回答:
数据库 连接 池是一种用于保持数据库连接打开以便其他人可以重用的方法。
通常,打开数据库连接是一项昂贵的操作,尤其是在数据库是远程的情况下。您必须打开网络会话,进行身份验证,检查授权等。池化使连接保持活动状态,以便在以后请求连接时,优先使用活动的连接之一,而不必创建另一个连接。
请参阅下图,了解以下几段:
+---------+ | |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
以最简单的形式,它只是一个类似于开放式API调用的API调用(1),类似于“真实”调用。这首先检查池中是否有合适的连接(2),如果有可用的连接,则将其提供给客户端。否则,将创建一个新的(3)。
“合适的连接”仅仅是一个已经 拥有 访问使用正确的信息(如数据库实例,凭证,以及其他可能的事情)数据库。
类似地,有一个关闭API调用(4),它实际上并未调用 真正的 关闭连接,而是将连接放入池(5)中供以后使用。在某个时候,池中的连接可能 实际上
已关闭(6)。
这是一个非常简单的解释。实际的实现可能能够处理与多个服务器和多个用户帐户的连接,它们可能会预先分配一些连接基线,以便立即进行准备,并且在使用模式趋于平静时,它们实际上可能会关闭旧连接。
以上是 什么是数据库池? 的全部内容, 来源链接: utcz.com/qa/420221.html