2010-12-12 4 views

답변

6

컴퓨터가 패킷을 외부 서버로 보낼 시간이 필요하고 패킷을 다시 보낼 시간이 필요하기 때문입니다. 이것은 네트워크 대기 시간이라고 불리며 Java의 경우 특별히 문제가 아니지만 일반적인 네트워크 문제입니다.

1

네트워크 대기 시간에 연결 생성 시간을 더한 것이 내 추측입니다. 나는 클라이언트 머신과 MySQL 서버 사이에 어떤 것이 있는지 모른다.

8

"이유"는 이미 답변되었습니다. 그것은 단지 네트워크 대기 시간입니다.

"수정"하는 방법에 관심이있을 것입니다. 대답은 connection pool입니다. Java 웹 응용 프로그램을 실행중인 경우 웹 서버에서 제공하는 연결 풀링 기능을 사용하십시오. Tomcat을 예로 들면 this manual을 확인하십시오. Java 데스크톱 애플리케이션을 실행중인 경우 c3p0 (자습서 here)과 같은 적절한 연결 풀 구현을 사용하십시오.

2

로컬로 동일한 연결을 설정하는 것보다 네트워크를 통해 연결하는 데 항상 시간이 오래 걸릴 수 있습니다. 그러나 매우 일반적인 로컬 네트워크가 있다고 가정 할 때 4-5 초가 약간 씩 들립니다. 내 추측 (추측 일뿐)은 네트워크 이름 확인 (즉 DNS 및/또는 Netbios)에 의해 대부분의 추가 시간이 소비되고 있다는 것입니다.

이름이 아닌 숫자 IP 주소를 사용하여 연결을 시도하는 것이 좋습니다.

+0

나는 두 번째 IP 주소 만 시도 할 것이다. 4-5 초는 네트워크 대기 시간이 매우 느린 것 같습니다. –

+0

+1 이름 확인에 관한 좋은 점. – BoltClock

1

연결시 4 초가 DNS 문제 일 수 있으며 순수한 네트워크 대기 시간 일 수 없습니다. "skip-name-resolve"매개 변수를 사용하여 MySQL 서버를 시작하여 클라이언트 IP를 호스트 이름으로 해결하지 마십시오. 그 전에는 그랜트 테이블이 IP와 심볼 이름 대신 'localhost'를 기반으로하는지 확인하십시오.

관련 문제