Peço desculpas se minha redação não estiver totalmente correta - sou bastante novo em tudo isso.
Objetivo: estou tentando melhorar a velocidade com que recebo dados do meu banco de dados
Configuração:
Estou hospedando o banco de dados no servidor A. O banco de dados também pode ser acessado por meio de um site como www . mydbweb. com (não meu site real ofc). Esse acesso no lado do servidor acontece via Nginx com rotas para algo como localhost:1234
.
Descrição: Se eu logar dentro do servidor e fizer uma requisição ao banco de dados via site (ie www.mydbweb.com
) os dados serão buscados via rede (certo?), mas se eu fizer uma requisição via localhost:1234
diretamente, isso significaria que nenhum dado é passou pela rede?
Em geral, existe uma maneira de pular os dados que estão sendo buscados pela rede? Eu sinto que a rede introduz algum tipo de latência ou gargalo para grandes consultas de dados.
Depende um pouco do sistema operacional e da configuração da rede, mas geralmente não há diferença significativa de velocidade na comunicação com um endereço IP externo de um servidor ou o endereço IP localhost/loopback, pois geralmente o sistema operacional e a pilha de rede estão cientes de que o o endereço IP externo também é “esta máquina” e os pacotes não são enviados, mas permanecem na memória.
Mas a camada de abstração adicional do nginx no caminho entre seu aplicativo e o banco de dados adicionará latência em comparação a esses dois se comunicarem diretamente.
A maneira mais rápida de conectar seu aplicativo ao seu banco de dados (quando ambos estão rodando no mesmo host) é por meio de um soquete Unix (para um banco de dados rodando no Linux ou em um sistema operacional Unix semelhante) ou uma conexão direta semelhante. Tal conexão elimina a necessidade de encapsular as solicitações e respostas em pacotes de rede.