개발 Q&A

제목 mysql connection pooling 질문
글쓴이 손무 작성시각 2013/08/09 15:18:01
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 21333   RSS


 안녕하세요..

 mysql 컨넥션 풀링에 질문이 있어서요

http://www.codeigniter-kr.org/qna/view/6272/page/1


우연히 위 질문을 보았는데, 지금 저는 php 5.3.10 을쓰는데, 

 php.ini 에서 

mysql.allow_persistent = On
mysql.max_persistent = 
mysql.max_links = 

 위 값들을 설정하고, 

코드이그나이터의 database.php 에서 

 pconnect 를 TRUE 로 하면 영속적 연결 ( 컨넥션 풀링 ) 이 원하는대로 진행되는거 아닌가여 ?

 위 질문글은 1년정도 되었지만 그래도 그리 오래된 글은 아닌데 PHP 가 풀링지원을 안한다는 글이 있어서

 이상해서요..
 
 다음글 db framework 질문입니다. (1)
 이전글 숫자 캡챠는 어디서 구하나요? (4)

댓글

들국화 / 2013/08/09 16:40:08 / 추천 0
연결을 초기화 하는데 리소스를 많이 사용하지 않는다면 Persistant Connection은 사용하지 않는게 정신 건강에 좋을듯 하네요.
손무 / 2013/08/09 22:42:59 / 추천 0
들국화 / 아무 증상이나 이유도 없이 그렇게만 말씀하시니 ... ?

http://php.net/manual/kr/features.persistent-connections.php

여기를 보니 테이블락킹과 트랜젝션에 주의하라 라고 나와있습니다만,

innodb 에서는 테이블락킹은 거의 없을테고 ( 테이블을 수정하지 않는 한 )

트랜젝션 사용시 코드에만  주의하면 문제 없을거 같긴한데..
들국화 / 2013/08/12 16:57:46 / 추천 0
손무/ 증상이나 이유를 말 안한게 아닌데요. Persistent Connection의 목적은 HTTP 의 keep-alive같이 host, userid, password같은 키 정보로 연결을 유지하는 걸로 알고 있습니다.
그래서 새로 연결을 맺는게 리소스를 많이 잡아 먹는게 아니면 사용하지 않는게 좋을것 같다는 생각이고요. (서버 구성에 따라 많이 달라지겠죠.)
역으로 생각하면 Persistent 연결이 리소스를 반환을 안해 새로 연결을 해야할 상황에서는 오히려 방해가 된다는 거겠죠.

Connection Pool 과 Persistent Connection은 비슷한 점도 있지만 다른 개념 입니다.