Php - 连接到远程数据库非常慢

时间:2008-11-08 03:11:28

标签: php mysql dns lag remote-connection

我有一台新的VPS服务器,我正试图让它连接到同一ISP的另一台服务器。当我通过mysql的命令行工具连接时,连接速度非常快。

当我使用PHP连接到远程数据库时,连接时间可能最多需要5秒。此后的查询会很快执行。

这不仅限于mysql,使用file_get_contents()从几乎任何其他服务器下载文件都会产生相同的延迟。使用wget获取文件没有这种滞后。

我使用dns_get_record()从PHP中定时DNS查询,这些查询速度很快(1-2毫秒)。

有关php配置中的内容可能导致此问题的任何想法?

感谢。

2 个答案:

答案 0 :(得分:2)

我会查看PHP运行的模式,是出于某种原因将脚本作为CGI运行。基本上PHP本身非常慢,并且在运行远程操作时它才会引人注意。

检查Web服务器的配置。此外,如果它是一个选项,请从命令行尝试PHP,看看它是否在没有涉及Web服务器层的情况下表现更好。

答案 1 :(得分:1)

我最终从PHP 5.1.6升级到PHP 5.2.6,问题就消失了。它肯定是PHP中的DNS查找问题,以下大约需要5秒钟才能运行:

gethostbyname('example.com')

我有一种感觉IPV6是一个问题(主要是在网上阅读这个问题的预感),但我没有任何证据。