mysqli_connect()突然非常慢

时间:2014-01-14 18:01:21

标签: php mysql mysqli mysql-connect

我最近没有在这种情况下改变任何东西,但是最近我对远程服务器的mysqli_connect()非常慢(大约是它达到30秒最大执行时间的一半)。当它工作时,响应时间在28到30秒之间。

我在两台服务器上重启了MySQL。持有PHP脚本的服务器是本地WAMP服务器,远程服务器是LAMP堆栈。 LAMP服务器执行正常服务与WAMP服务器请求的相同信息。查询似乎不是问题,而是看起来像mysqli_connect()是问题:

    $mtime = microtime(); 
    $mtime = explode(" ",$mtime); 
    $starttime = $mtime[1] + $mtime[0]; 
        $this->conn = mysqli_connect($this->host,$this->user,$this->password) or die(mysqli_error($this->conn));
        $etime = microtime(); 
    $etime = explode(" ",$etime); 
    $endtime = $etime[1] + $etime[0]; 
    $totaltime = ($endtime - $starttime);  
    echo('<!--mysqli_connect took: '.$totaltime.' seconds-->');

该页面(当它没有给出达到max_execution_time的500响应时)将显示:

<!--mysqli_connect took: 28.975151777267 seconds-->

远程LAMP服务器上的相同代码将显示:

<!--mysqli_connect took: 0.036190032958984 seconds-->

我没有更新此代码或进行任何配置更改,因为这是有效的。我在任一服务器上都没有错误,除了在WAMP服务器上超过30秒时超出max_execution_time错误。有没有人有什么建议?

感谢阅读。

2 个答案:

答案 0 :(得分:4)

也许是DNS问题? 您是否尝试将主机字符串更改为直接IP地址而不是域名?这里有一个类似的问题,Connecting to mysql server(localhost) very slow,听起来很相似,但它是本地主机,并改为127.0.0.1解决了这个问题。

答案 1 :(得分:0)

发现问题并且与DNS相关。我仍然不完全理解它。似乎守护程序named在LAMP服务器上停止了。此服务器是我用于连接的域名的权威NS。我不知道为什么它有时会工作,或者为什么当我使用IP地址时它不起作用,但它现在工作正常我再次启动服务。

感谢您的帮助。