【发布时间】:2010-09-21 13:27:23
【问题描述】:
我想使用 mod_dbd 为我的 php 应用程序实现连接池。我能够为 apache 定义 mod_dbd 模块,并且可以看到它正在打开的连接,但我无法用我的 php 代码“连接”这些连接。我正在尝试带参数的 mysql_connect 和不带参数的 mysql_pconnect。
欢迎任何建议,
爱丽儿
【问题讨论】:
我想使用 mod_dbd 为我的 php 应用程序实现连接池。我能够为 apache 定义 mod_dbd 模块,并且可以看到它正在打开的连接,但我无法用我的 php 代码“连接”这些连接。我正在尝试带参数的 mysql_connect 和不带参数的 mysql_pconnect。
欢迎任何建议,
爱丽儿
【问题讨论】:
为了从 mod_dbd 的连接池功能中受益,您需要运行线程 MPM,以便多个线程可以共享池中的连接。不幸的是,我确实认为 PHP 不是线程安全的,并且不支持线程 MPM。
如果你将 mod_dbd 与 pre-fork MPM 一起使用(它不是线程化的,建议用于 PHP),mod_dbd 将创建一个单一的持久数据库连接,与 PHP 中不使用 mod_dbd 的数据库连接相比,它不会给你带来任何巨大的优势.
【讨论】:
http://bugs.php.net/bug.php?id=51865&edit=1
应该将其实现为 像mysqlnd这样的扩展已经实现, 允许他人继承 抽象代码。很有可能 这样的事情可能会出现在PECL中, 但对于核心 PHP,它不是很 很可能我们中的任何一个人都会 努力吧。
您还必须记住,它 需要进行大量更改才能允许 在 Apache 下的连接池, 同时允许一个 扩展以使用另一个非 Apache 基于网络服务器,如 IIS 工作 和。否则扩展会成功 太有限了。
只是引用我在谷歌上搜索的内容
【讨论】: