2010-12-22 2 views
4

는 의견 중 하나는누군가 mysqli close 함수에 관한이 문장에 대해 조금 설명 할 수 있습니까? mysqli 문서 사이트에 여기에 나열된

당신은 항상 PHP가 사용하는 TCP 소켓 실제로 가까이까지 무료 에 mysqli_close() 전에 mysqli_kill() 기능을 사용해야한다고 말했습니다. 쓰레기 스크립트 실행 후 수집 mysqli_close()는 소켓을 스스로 죽이지 않습니다. 그렇지 않으면 소켓은 약 30 초 동안 '대기'상태로 유지되고 추가 페이지로드/연결 시도는 총 개의 열린 TCP 연결 수를 추가하기 만하면 은 에 대해 대기 상태로 유지됩니다. 이 대기 시간은 으로 PHP 설정을 통해 구성 할 수 없습니다.

또한이 버전의로, mysqli 생성 된 링크는 "비활성화"될 수없고, 와 PHP 서버 또는 프로세스를 다시 시작할 때까지 본질적으로, 프로세스 메모리에 축적 만들기 mysqli.max_links을 계속 = -1 필요 .

누군가가이 의미를 설명하고, mysqli.max_links를 설정해야하는 경우 어떻게해야하며, mysqli_kill();

답변

4

나는 합리적, MySQL의주의 :: mysqli 전에 :: 가까운 죽일 mysqli를 사용

로컬 호스트

에 소켓을 통해 연결 할 수 있다는 것을 발견하지 않습니다.

실제로 연결을 닫기 전에 스레드를 죽이면 연결이 열린 채로 남아 있습니다! max_connections 및 max_user_connections (기본값은 동일 함)에 따라 "* * 사용자에 대한 최대 연결 수"라는 메시지가 표시 될 수 있습니다. 에서

: http://www.php.net/manual/en/mysqli.kill.php

+0

감사합니다, 나는 가까운 사용해야합니다, 도움, 그래서 몇 가지 조언을 주셔서 감사합니다, 다음 시간 이후에 죽일? – mcbeav

+0

닫기 ... 로컬 호스트 wamp를 사용하여 테스트를 수행하고'show full processlist; '를 사용하여 연결 수를 모니터 할 수 있습니다. – ajreal

+0

또는 최대 연결을 무제한으로 설정할 수도 있습니다 ... – ajreal