什么是应用程序中的连接池?

时间:2014-01-13 10:42:22

标签: php mysql joomla

框架或应用程序自动连接数据库,我们只需使用数据库对象进行数据库相关操作。在CMS或框架中,术语“连接池”非常流行。您可以选择CMS或PHP框架。

  • 什么是连接池?
  • 有人可以用一个例子来描述这个吗?
  • 连接池的优点是什么?

2 个答案:

答案 0 :(得分:6)

没有连接池:

每次要与数据库通信时,都必须打开连接,使用它,然后再将其关闭。

使用连接池:

连接始终保持打开状态(在池中)。当你想与数据库交谈时,你已经连接了一个尚未使用的连接,使用它,然后把它放回去。

这比打开和关闭它们更有效率。

答案 1 :(得分:3)

连接池通常是指具有正在重用的连接池。将此与非池化连接进行对比:通常每个程序实例在每次运行时都会自行连接到数据库。在PHP程序中,您只需要连接到数据库的行$db = new PDO(...)。如果您有100个同时访问者,则将同时运行该脚本的100个单独实例,并同时为数据库建立100个单独的连接。这可能非常低效和/或暂时压倒数据库服务器。

连接池的工作原理是建立50个与数据库的永久连接,这些连接始终保持打开状态。然后,PHP脚本将简单地选择其中一个打开的连接与数据库通信,并在完成后将其放回池中。如果突然有超过50个PHP脚本尝试同时使用此池中的连接,则前50个将成功,其余的将必须排队等待,直到未使用的连接可用。这样做效率更高,因为连接不会一直打开和拆除,并且在突然出现峰值时不会使数据库服务器瘫痪。