我的生产网络服务器遇到了非常慢的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
有什么建议吗?
答案 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。