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

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

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

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

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

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

0
задан 14 December 2020 в 23:41
1 ответ

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

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

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

1
ответ дан 14 December 2020 в 12:02

Теги

Похожие вопросы