PHP에서는 DB 연결시 매번 새로 여는 것 같습니다: DB 연결요청이 많아질 땐, 적당치 않을 것 같아요.
Java Servlet의 경우, 많은 요청이 필요할 때 DB 연결 Thread를 계속 열어두고 유지할 수 있을 것 같습니다: Java Servlet을 안해봐서 잘 모릅니다.
1. PHP에서, DB 연결 객체를 Thread로 유지할 방법이 있는지.
2. Java Servlet에서 위에 말한 게 맞는지
알고 싶네요.
고수님들의 답변이나 좌표 부탁드립니다.
내가 php는 안해봐서 모르겠지만 일반적으로 db커넥션 유지하고 레코드셋만 열고 닫으면 되지 뭐하러 매번 db커넥션을 다시하나?
네, 님 말이 맞습니다. PHP에서 그게 가능한지 물어보는 겁니다.
php도 persistent connection을 쓸 수는 있음. 전용 함수가 있으니 찾아보라능.
서블릿은 그런 개념이 아닐건데.. Connection Pool 이런걸로 검색해 보삼
구글링 php db pool
님들, 좌표 감사합니다.
mysql_pconnect 던가
글고 php는 쓰레드란 개념이 사실상 없음..흉내내기뿐
이게 정확한지는 모르겠는데 내가 알고 있는 지식으로..접속자당 하나의 httpd 프로세스가 생성됨. 해석이 끝나면 httpd 프로세스가 자동으로 파괴가 됨.
천회장님// 제가 java servlet에 대해 잘못 이해했나보네요. 다시 한번 봐야겠습니다.
자바는 컨테이너 안에서 관리를 하지만...php는 그렇지가 않음..(혹, 내가 한 말이 틀린 정보가 섞여있을수 있음)
php닭 // ㅇㅇ 맞음. 한번 해석이 끝난 문맥은 완전히 소멸됨.
php에선 db pool이 없다는군요. mysql_pconnect - db pool과는 다른 개념이랍니다 - 를 사용해보라는데, 여러가지 문제들이 발생할 수 있으니 조심하라는군요.
ㄴ db pool 이 없어서 sqlrelay 나 sqlb를 쓴데
ㅇㅇ db pool 이라는 개념이 없음. 자바에서는 커넥션 풀로 미리 열어두고 하지만...위에서 말했다시피, 해석이 끝나면 자동으로 모든게 파괴가 됨. 자바는 계속 커넥션을 물고 있다면, php에서는 열고, 자동으로 닫히고(그래서 특별히 mysql_close 를 쓰지 않음)..
sqlrelay를 쓸 수 있겠지만, drawback들이 많은 것 같은데 굳이 이걸 써야할 필요가 있을지 모르겠습니다.
우분투짱닭님// 네. 맞습니다.