명확히하기 위해 :
공개 호스트 이름을 사용하여 MySQL 데이터베이스에 연결하고 있습니다. 호스트 이름은 서버의 외부 IP (예 : 1.2.3.4)로 확인됩니다. MySQL 연결을 통해 보내고받는 데이터가 인터넷을 통해 전송됩니까? localhost를 사용하는 것이 더 빠릅니까? 서버 대역폭을 차지합니까?
답변
확실하게하려면을 사용할 수 있습니다 traceroute 1.2.3.4
. 이것은 명령을 실행하는 호스트와 1.2.3.4 IP 주소를 가진 장치 사이의 모든 라우터를 나열합니다.
답변
MySQL 서버에 연결하기 위해 호스트 이름으로 “localhost”를 사용하면 MySQL은 TCP가 아니라 소켓을 사용합니다. 로컬로 실행중인 MySQL 서버에 연결하는 가장 빠른 방법입니다.
서버에 외부 IP가 “적절하게”설정되어있는 경우, 즉 내부 네트워크의 방화벽이나 프록시 뒤에 있지 않은 경우 대상 IP 주소가 동일한 시스템임을 알기 때문에 트래픽이 서버를 떠나지 않습니다.
답변
라우팅 또는 스위칭 장비에 대해서는 언급하지 않았지만 데이터가 다시 나오기 전에 외부로 나가는 것을 막을 수는 있지만 실제로는 거의 확실하게 데이터가 이런 식으로 나오지 않을 것입니다.
답변
하나의 머신에 모두 있으면 머신을 떠나지 않습니다.
답변
머신의 서버 IP 구성이 퍼블릭 IP 주소를 사용하는 경우 트래픽이 서버를 떠나지 않습니다 (그러나 성능상의 이점을 위해 어쨌든 localhost를 사용하는 것이 더 안전합니다)
IP가 사용 중이고 라우터에 공용 IP가 있고 서버에 내부 IP가있는 경우 최소한 트래픽이 서버를 떠나 라우터에서 포트 반사를 가정 할 경우 라우터에서 서버로 다시 반영 될 가능성이 높습니다. 포트 포워딩의 일부-어떤 의미에서는 트래픽이 네트워크를 떠나지 않지만 일부 트래픽은 서버를 떠날 것입니다
네트워크 설정 정보가 없으면 그보다 더 명확하지 않습니다.
답변
이더넷 케이블을 분리하거나 Wi-Fi를 분리하고 데이터베이스 연결을 시도하면 답을 얻을 수 있습니다. 소란도없고 무스도 없습니다!
답변
결과는 다를 수 있지만 인터넷 연결이 끊긴 라우터를 사용하면 외부 주소를 통해 시스템에 액세스 할 수 있습니다. 그러나 이렇게하려면 라우터가 적절한 고정 IP 주소로 구성해야합니다. 이는 일반적으로 ISP를 통해 DHCP를 통해 발급되기 때문입니다.
속도 차이에 관해서는 이론적으로 localhost를 사용하는 것이 네트워크 통과와 관련된 다양한 오버 헤드를 제거하기 때문에 더 빠릅니다. 실제로는 차이가 너무 작아서 눈에 띄지 않아야합니다.