【发布时间】:2012-06-21 15:00:16
【问题描述】:
我的生产 Web 服务器的 ADO 和 mysqli 连接速度非常慢。当前的软件设置是 windows 2008 server R2 Standard Edition SP1、Apache 2.4、PHP 5.3.10、MySql 5.5.24、Pear 1.94、Zend Engine 2.30 版。
我使用 XDEBUG 分析了代码,它显示每个初始连接大约需要 1200 毫秒(无论访问的页面如何),而在我的本地开发机器和另一台测试服务器上,连接只需要大约 8 毫秒。除了 php、pear、mysql、apache ini 和 conf 文件之外,网站的代码都是通过 SVN 同步的。我已经对这些进行了比较以检查差异,但没有任何差异。数据库内容也是完整的副本。生产服务器的所有内容都托管在同一台机器上,因此不存在任何防火墙或互联网问题。
第一个连接配置文件具有以下调用堆栈:
ADOConnecton->Connect
ADODB_mysql->_connect
php::mysql_connect
第二个:
php::mysqli->mysqli
有什么建议吗?
【问题讨论】:
-
所以第一个代码块说你连接到 mysql 3 次?您不应该基本上将与 mysql 的连接存储在单例中,然后将其传递给需要使用数据库的操作吗?
-
@Tony 如果您尝试连接命令行客户端,您是否有同样的延迟?另外,您是连接到“localhost”还是“127.0.0.1”?
-
Localhost,它看起来是这样..虽然很难说,因为您无法配置命令行客户端。
-
$connection->Connect() 调用的第一个参数是什么?还请比较
mysql -hlocalhost和mysql -h127.0.0.1的连接时间。
标签: php mysql apache mysqli windows-server-2008