私のLANを介したMySQLデータベース接続は、インターネットを介したデータベース接続よりも大幅に遅いことに長年気づいていました。
Windows 7 32ビットを実行していて、イーサネットケーブルを使用してスイッチに接続しています。スイッチは、私のインターネット接続が建物に到着する場所であるモデム/ルーターに接続されています。私はWiFiを使用していません。
次のコードを実行しました。
//store current time
$start = microtime(true);
//connect to database outside my LAN
$c1 = mysql_connect("1.2.3.4", "user1", "pass1");
mysql_select_db("database1", $c1);
//print out the time taken in seconds
echo microtime(true) - $start, "<br>";
//close the database connection
mysql_close($c1);
//store current time
$start2 = microtime(true);
//connect to database on my LAN
$c2 = mysql_connect("192.168.0.10", "user2", "pass2");
mysql_select_db("database2", $c2);
//print out time taken in seconds
echo microtime(true) - $start2, "<br>";
//close database connection
mysql_close($c2);
次の時間を返した3回:
外部WANデータベース:0.054498910903931、0.055356025695801、0.05623197555542
内部LANデータベース:5.0052859783173、5.0053160190582、5.005627155304
LANファイル転送速度(Sambaを使用してUbuntuマシンでドライブを共有する)は約30MB /秒で、ブロードバンド接続速度は35Mbpsダウン、7Mbpsアップです。
ちなみに、SSHを使用してローカルサーバーにログインするのは非常に時間がかかります。
他にどのような情報が必要かわからないので、もっと質問してください。ローカル接続がなぜはるかに遅いのか、私は困惑していますso!
Wiresharkを使用して接続トラフィックを検査したところ、失敗しているように見えるMDNS要求がいくつか見つかりました。
その後、私は buntu Name Service Switch構成のこのバグ に遭遇し、 buntuサーバーネットワーク構成 で説明されているように、最後の手段としてmDNSを使用するように/etc/nsswitch.conf
ファイルを変更しました。 =ページ。
必要なサービス(MySQL、SSH)を再起動すると、魔法のようにすべてが高速化されます。