我有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