2009-08-25 2 views

답변

2

난 당신이 두 가지 문제가 있다고 말하고 싶지만 :

  • 당신은 연결 풀링을해야하는지 모르거나

  • 찾을 경우 필요할하지를 , 당신은 그것을 구현하는 방법을 모른다.

나는 처음에는 당신이 필요 없다고 가정하고 연결을 재사용하는 것은 (아마도 조숙 한) 최적화라고 생각합니다.

그러나 실제로 필요하다고 판단되면 응용 프로그램 서버의 성격에 따라 달라집니다. 응용 프로그램은 "프로세스에서"아파치의 경우

  • , 당신은 정말 하나의 연결 프로세스 당 (또는 스레드)
  • 경우 응용 프로그램입니다 "처리 중"예를 들어, 이외의 다른 옵션이 없다 mod_jk를 통해 Tomcat에 연결하면 원하는 경우 여러 스레드에 걸쳐 연결 풀링을 포함 할 수있는 응용 프로그램 서버 (Tomcat)에서 원하는 것을 수행 할 수 있습니다. 때마다 새로운 연결을 사용하는

특별한 이유는 없습니다 : 필요한 경우에만 연결

  • 이전 요청에 의해 왼쪽 된 연결 상태에서

    • 없음 원치 않는 부작용 - 데이터베이스를 불어 덜 위험 연결
    • 예측 가능한 성능 - 당신은 연결
    을 만드는 등, 요청에 걸리는 시간을 측정 할 수 있습니다

    연결을 재사용 할 수있는 유일한 이유는 연결 오버 헤드 시간 자체입니다.

    일부 데이터베이스는 연결 속도가 비교적 느리고 (Oracle) 일부는 훨씬 빠릅니다 (MySQL). 일부 데이터베이스는 재사용되는 내부적으로 스레드 풀을 유지하도록 조정될 수 있습니다 (MySQL).

  • 0

    내가 (그리고 그것을 찾고 있어요) 확실한 대답을하지 않지만, 내가 제안 할 수있는 (펄 백엔드) 다음

    • 당신이 mod_perl2를 사용하는 경우는, 다음 아파치를 보라 :: DBI (http://metacpan.org/pod/Apache::DBI). 여기에는 페이지에 나열된 몇 가지 단점이 있습니다.
    • 데이터베이스에 연결하기 위해 perl DBI를 사용하는 경우 connect() 메소드 호출 대신 connect_cached() 메소드 호출을 사용하십시오.