![Почему подключение к базе данных по локальной сети (LAN) может быть медленнее, чем подключение по глобальной сети (WAN)?](https://rvso.com/image/1302255/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%20%D0%B1%D0%B0%D0%B7%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BF%D0%BE%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B5%D1%82%D0%B8%20(LAN)%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B1%D1%8B%D1%82%D1%8C%20%D0%BC%D0%B5%D0%B4%D0%BB%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5%2C%20%D1%87%D0%B5%D0%BC%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%20%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B5%D1%82%D0%B8%20(WAN)%3F.png)
Я давно заметил, что подключение к базе данных MySQL по локальной сети значительно медленнее, чем подключение к базе данных через Интернет.
Я использую Windows 7 32bit и подключен к коммутатору с помощью кабеля Ethernet. Коммутатор подключен к модему/маршрутизатору, через который мое интернет-соединение поступает в здание. Я не использую 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
Скорость передачи файлов по локальной сети (при использовании Samba для общего доступа к диску на машине Ubuntu) составляет около 30 МБ/с, а скорость моего широкополосного соединения составляет 35 Мбит/с на загрузку и 7 Мбит/с на передачу.
Как ни странно, вход на локальный сервер с использованием SSH происходит довольно медленно.
Я не знаю, какая еще информация вам может понадобиться, поэтому, пожалуйста, спрашивайте больше. Я в недоумении, почему локальное соединениетакгораздо медленнее!
решение1
Я использовал Wireshark для проверки трафика соединения и обнаружил ряд запросов MDNS, которые, по-видимому, не выполнялись.
Впоследствии я наткнулся наэта ошибка с конфигурацией переключателя службы имен Ubuntuи изменил /etc/nsswitch.conf
файл, чтобы использовать mDNS в качестве крайней меры, как описано наКонфигурация сети сервера Ubuntuстраница.
Перезапуск необходимых служб (MySQL, SSH) ускорил все как по волшебству!