ADO和msqli连接速度很慢

时间:2012-06-21 15:00:16

标签: php mysql apache mysqli windows-server-2008

我的生产网络服务器遇到了非常慢的ADO和mysqli连接。当前的软件设置是Windows 2008服务器R2标准版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同步。我已经对这些做了差异以检查差异而且没有。 DB内容也是完整的副本。生产服务器的所有内容都托管在同一台机器上,因此没有任何防火墙或互联网问题。

第一个连接配置文件具有以下调用堆栈:

ADOConnecton->Connect
ADODB_mysql->_connect
php::mysql_connect

第二个:

php::mysqli->mysqli

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

通常(第一次)连接的缓慢取决于DNS解析。 可能是:

  • 客户端解析服务器名称
  • 服务器以解析客户端名称以匹配访问规则

让客户端/服务器使用主机文件知道服务器/客户端地址: http://en.wikipedia.org/wiki/Hosts_(file)

答案 1 :(得分:1)

我编辑了Mysql my.ini,将mysql服务更改为仅绑定到IPV4环回适配器。

[mysqld]
...
bind=127.0.0.1

我还更改了\ public_html \ conf \ face.ini以使用IPV4环回地址而不是本地主机。 (将“localhost”更改为“127.0.0.1”)

之后所有问题都消失了。我不确定是不是因为机器有六个IP地址,或者它试图决定是否使用IPV6或IPV4。