我有2台服务器在不同的地理位置新加坡和印度。PHP远程MySQL数据库连接很慢SLOW
我需要服务器1从PHP脚本在服务器连接2.剧本是这样的:
<?php
echo microtime(true)."\n";
$con = mysql_pconnect('server1','username','password');
$db = mysql_select_db('database_name',$con);
echo microtime(true)."\n";
$q = "select * from tablename where id='35'";
$result = mysql_query($q);
echo microtime(true)."\n";
?>
该出把这个脚本是这样的:
1373977322.9081
1373977324.377
1373977324.6625
,你可以看到第二次和第三次之间的时间大约是2秒,这意味着mysql_pconnect正在持续2秒钟。第三和第四(选择查询)之间的时间非常少。
此外,如果我运行这个脚本server1连接到server1本身它需要20毫秒。
无法弄清楚为什么连接时间太长。我也尝试了一些东西,如skip-name-resolve和持久连接。但:(
如何调试这个东西???
在服务器之间使用'traceroute'来查看瓶颈在哪里。 – Barmar
尝试与[mysqli]一样(http://php.net/manual/en/book.mysqli.php) – yoavmatchulsky
如果您在server1上运行脚本,连接到它自身,当然它将在20ms内运行。你正在使用本地主机 - 数据没有距离去旅行。 – crush