![为什么 LAN 上的 DB 连接比 WAN 连接慢?](https://linux22.com/image/1302255/%E4%B8%BA%E4%BB%80%E4%B9%88%20LAN%20%E4%B8%8A%E7%9A%84%20DB%20%E8%BF%9E%E6%8E%A5%E6%AF%94%20WAN%20%E8%BF%9E%E6%8E%A5%E6%85%A2%EF%BC%9F.png)
我很久以前就注意到,通过 LAN 的 MySQL 数据库连接速度明显比通过 Internet 的数据库连接慢。
我运行的是 32 位 Windows 7,并使用以太网电缆连接到交换机。交换机连接到调制解调器/路由器,我的互联网连接就是从这里进入大楼的。我没有使用 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);
三次,返回时间如下:
外部 WAN 数据库:0.054498910903931、0.055356025695801、0.05623197555542
内部局域网数据库:5.0052859783173、5.0053160190582、5.005627155304
LAN 文件传输速度(使用 Samba 在 Ubuntu 机器上共享驱动器)约为 30MB/s,我的宽带连接速度为下行 35Mbps 和上行 7Mbps。
据传,使用 SSH 登录本地服务器相当滞后。
我不知道你还需要什么其他信息,所以请询问更多信息,我不明白为什么本地连接所以慢多了!
答案1
我使用 Wireshark 检查连接流量,发现许多 MDNS 请求似乎失败了。
后来我遇到了此错误与 Ubuntu 名称服务切换配置有关并更改/etc/nsswitch.conf
文件以使用 mDNS 作为最后的手段,如Ubuntu 服务器网络配置页。
重新启动所需的服务(MySQL、SSH)就像魔术一样加快了一切速度!