Wyjaśnić:
Korzystam z mojej publicznej nazwy hosta, aby połączyć się z bazą danych MySQL. Nazwa hosta odnosi się do zewnętrznego adresu IP mojego serwera (np. 1.2.3.4). Czy dane, które wysyłam / odbieram przez połączenie MySQL, są w ogóle przesyłane przez Internet? Czy szybsze byłoby użycie localhost? Czy zajmie to przepustowość mojego serwera?
linux
networking
mysql
bandwidth
Tom Marthenal
źródło
źródło
Jeśli użyjesz „localhost” jako nazwy hosta do łączenia się z serwerem MySQL, MySQL nie będzie używać TCP, ale gniazd. Powinien to być najszybszy sposób połączenia z lokalnie działającym serwerem MySQL.
Jeśli Twój serwer ma skonfigurowane zewnętrzne IP „poprawnie”, to znaczy nie znajduje się za zaporą ogniową lub proxy w sieci wewnętrznej, ruch nie opuści twojego serwera, ponieważ wie, że docelowy adres IP to ten sam system.
źródło
lo
adaptera, który jest pseudo-adapterem używanym tylko dla tych adresów. Nie jestem pewien co do systemu Windows, ale myślę, że ma coś podobnego.Nie wspominasz nic o swoim routingu lub przełączaniu sprzętu, ale możesz zrobić wszystko, aby upewnić się, że dane wychodzą na zewnątrz przed powrotem, ale w rzeczywistości prawie na pewno Twoje dane nie będą wychodzić w ten sposób.
źródło
Nie, jeśli wszystko jest na jednej maszynie, nie opuszcza maszyny.
źródło
jeśli twoja konfiguracja IP serwera na swoim komputerze używa publicznego adresu IP, ruch nie opuści twojego serwera (ale bezpieczniej jest upewnić się i używać localhost i tak dla zwiększenia wydajności)
jeśli twój adres IP jest nazwany, a router ma publiczny adres IP, a serwer ma wewnętrzny adres IP, wówczas ruch będzie co najmniej opuszczał serwer i był odbijany z powrotem na serwer z routera, zakładając, że router dokonuje odbicia portu jako część przekierowania portów - więc w pewnym sensie żaden ruch nie opuści sieci, ale część ruchu opuści serwer
bez żadnych informacji o konfiguracji sieci nie mogę być bardziej ostateczny
źródło
Odłącz kabel Ethernet lub odłącz Wi-Fi i spróbuj połączyć się z bazą danych, a otrzymasz odpowiedź. Bez kłopotów, bez musów!
źródło
Twoje wyniki mogą się różnić, ale mogę uzyskać dostęp do mojego systemu za pośrednictwem adresu zewnętrznego, ale router jest odłączony od Internetu. Jednak w tym celu musiałem skonfigurować router z odpowiednim stałym adresem IP, ponieważ zwykle jest to wydawane przez dostawcę usług internetowych za pośrednictwem DHCP.
Jeśli chodzi o różnicę prędkości, teoretycznie użycie hosta lokalnego powinno być szybsze, ponieważ usuwa różne koszty ogólne związane z przechodzeniem przez sieć. W rzeczywistości różnica powinna być tak minimalna, abyś nigdy nie był w stanie jej zauważyć.
źródło
Oprócz traceroute (już wspomnianego) możesz użyć tcpdump lub wireshark i obserwować wszelkie połączenia mysql wychodzące z twojego hosta. Host lokalny powinien zawsze być szybszy.
źródło