2010-03-14 2 views
6

데이터를 삽입 한 스크립트가있는 경우 동시에 100 명의 사용자가 2 분 이내에 스크립트를 엽니 다.php pconnect vs connect

(사실 내가 뭘 이메일 추적.)

그래서 인 PConnect 더, 또는 연결 자원을 감소하는 것이 좋습니다?

삽입 후 닫기가 있습니다.

+0

[mysql \ _connect VS mysql \ _pconnect] (http://stackoverflow.com/questions/247807/mysql-connect-vs-mysql-pconnect) – rubo77

답변

4

mysql_pconnect() 같은 프로세스에 대한 다른 요청에서 사용할 수있는 풀에 열린 연결을 삭제합니다. 따라서 각 작업자는 연결이 끊길 때까지 열린 상태로 유지합니다. 근로자 수를 줄이면 수용 할 수 있지만, 근로자 수를 늘리 자마자 mysql_connect()으로 전환하는 것이 좋습니다. 매번 연결해야하기 때문에 요청 당 약간 더 오래 걸리지 만 작업자가 아닌 요청이있을 때만 연결을 생성합니다.

+1

가능한 복제본입니다. 내 스크립트는 요청 전용이므로 나는 이상 1000 ppl 스크립트를 열고 5 분 사이에 그것을 실행, 더 나은 mysql_connect를 사용하고 계십니까? – user192344

+1

5 분이 넘는 1000 명이 있고 스크립트의 평균 소요 시간이 100ms 인 경우 평균 0.3 명의 동시 사용자입니다. 이는 전자 레인지에 포함 된 컴퓨터로 처리 할 수있는 기능입니다. – Evert

2

connect (웹 서버의 유휴 인스턴스는 데이터베이스 연결을 열어 둘 필요가 없습니다.)하지만 pconnect는 약간 빠릅니다 (새 연결을 열 필요가 없습니다. 이미 연결되어 있습니다).

+0

그래서 자원이 덜 필요하면 연결을 사용하는 것이 더 낫습니까? 열기 많은 연결에 대해 걱정하기 때문에 – user192344

+0

예. 정확합니다. – user262976

+1

"약간 빠름"이게 무슨 뜻입니까? 1000 건의 요청을 시작하면 그 차이를 알 수 있습니까? – rubo77

0

당신이 인 PConnect를 사용하는 경우, 당신은 (100)를 실행 스크립트의 이런 종류의 SLEEP 모드에서 연결을 많이해야합니다 2 분 안에 몇 번이고 mysql이 죽을 것이다.

당신은 mysql_connect() , mysql_close()

-1

는 mysql_pconnect()을 사용할 수 있습니다 : 데이터베이스에 영구 연결입니다. 당신은 그런 종류의 조작 동안 당신의 연결을 잃을 수 없습니다.

mysql_connect() : 많은 수의 조작으로 인해 연결을 잃을 수도 있으므로 정상적인 방법으로 연결 데이터베이스를 사용합니다.

데이터베이스 연결을 위해 mysql_pconnect()를 제안합니다.

+0

데이터베이스 연결에는 영구적 인 문제가 없습니다. pconnect의 "p"는 지속성을 나타냅니다. 즉, 요청 처리가 완료되면 (또는 작업자가 죽을 때) 연결 자체가 삭제되지 않습니다. AFAIK, 이것은 웹 서버 컨텍스트에서만 관련이 있습니다. –