PHP中的连接池

时间:2020-03-05 18:46:31  来源:igfitidea点击:

使用PHP时是否可以像在J2EE容器中那样缓存数据库连接?如果是这样,怎么办?

解决方案

回答

我们不能手动实例化连接池。

但是我们可以将"内置"连接池与mysql_pconnect函数一起使用。

回答

我想我们正在使用mod_php,对吗?

当PHP文件完成执行后,所有状态都会被杀死,因此(在PHP代码中)无法进行连接池。相反,我们必须依靠扩展。

我们可以使用mysql_pconnect,以使连接在页面完成后不会关闭,这样它们就可以在下一个请求中重用。

这可能就是我们所需要的,但这与连接池不同,因为无法指定要保持打开状态的连接数。

干杯。

回答

php中没有连接池。
mysql_pconnect和连接池是两个不同的东西。
与" mysql_pconnect"有关的问题很多,首先我们应该阅读并仔细使用该手册,但这不是连接池。

连接池是应用程序服务器管理连接的一种技术。当应用程序需要连接时,它会向应用程序服务器请求连接,如果有一个空闲连接,则应用程序服务器将返回其中一个池化连接。

为此,我们可以使用php进行连接扩展:http://www.oracle.com/technetwork/articles/dsl/white-php-part1-355135.html

因此,php中没有连接池。

正如Julio所说,apache在当前请求的请求结束时释放所有资源。我们可以使用mysql_pconnect,但是该功能受到限制,必须非常小心。另一个选择是使用单例模式,但是这些都不是池化的。

这是一篇很好的文章:https://blogs.oracle.com/opal/highly-scalable-connection-pooling-in-php

另请阅读此http://www.apache2.es/2.2.2/mod/mod_dbd.html