我的生产 Web 服务器的 ADO 和 mysqli 连接速度非常慢。当前的软件设置是Windows 2008 Server 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
有什么建议吗?
最佳答案
通常(第一次)连接的缓慢程度取决于 DNS 解析。 可能是:
- 客户端解析服务器名称
- 解析客户端名称以匹配访问规则的服务器
让客户端/服务器使用主机文件了解服务器/客户端地址: http://en.wikipedia.org/wiki/Hosts_(file)
关于php - ADO 和 msqli 连接非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140975/