Если я запрашиваю данные с локального хоста или с веб-адреса, данные проходят через сеть?

Если я запрашиваю данные с локального хоста или с веб-адреса, данные проходят через сеть?

Извините, если моя формулировка не совсем верна — я новичок во всем этом.

Цель:Я пытаюсь улучшить скорость получения данных из моей базы данных.

Настраивать: Я размещаю БД на сервере A. БД также доступна через веб-сайт, например www . mydbweb . com (конечно, это не мой настоящий веб-сайт). Этот доступ на стороне сервера осуществляется через Nginx с маршрутами к чему-то вроде localhost:1234.

Вопрос:Если я войду на сервер и сделаю запрос к БД через веб-сайт (т. е. www.mydbweb.com), данные будут извлечены через сеть (верно?), но если я сделаю запрос напрямую localhost:1234, будет ли это означать, что данные не будут передаваться через сеть?

В общем, есть ли способ пропустить получение данных через сеть? Я считаю, что сеть вносит некоторую задержку или узкое место для больших запросов данных.

решение1

Это немного зависит от ОС и конфигурации сети, но, как правило, существенной разницы в скорости при взаимодействии с внешним IP-адресом сервера или IP-адресом локального хоста/петли обратной связи нет, поскольку обычно операционная система и сетевой стек знают, что внешний IP-адрес также является «этой машиной», и пакеты не отправляются по сети, а остаются в памяти.

Однако дополнительный уровень абстракции nginx на пути между вашим приложением и базой данных увеличит задержку по сравнению с прямым взаимодействием этих двух компонентов.

Самый быстрый способ подключить ваше приложение к вашей базе данных (когда они оба работают на одном хосте) — через сокет Unix (для базы данных, работающей на Linux или аналогичной ОС Unix) или аналогичное прямое соединение. Такое соединение устраняет необходимость инкапсулировать запросы и ответы в сетевые пакеты.

Связанный контент