2011-04-27 8 views
1

나는 User라고 불리는 클래스를 가지고 있는데, 하나는 "login"이고 다른 하나는 "register"이다. "로그인"과 "등록"모두 db를 연결해야합니다. 매번 db에 연결할 필요가 있습니까 ?? db 연결 시간을 줄이기 위해 한 번만 연결할 수 있습니까? 고맙습니다.PHP에서 매번 db를 연결해야합니까?

답변

4

데이터베이스에 대한 연결을 열어두면 웹 서버와 데이터베이스 서버 모두에 전용 리소스가 필요하며 사용 가능한 열린 연결 수는 매우 제한적입니다 (100 범위 내). 연결 프로세스는 일반적으로 매우 빠르며 문제가되어서는 안됩니다. 최대한 빨리 연결을 열거 나 제거하면 일반적으로 확장 할 수 있습니다.

언제나처럼 간단하고 가벼운 방법을 시도해보십시오 (매번 연결될 수 있고 가능한 빨리 연결을 끊을 수 있음). 거기에서 실제로 문제가 있는지를 측정 할 수 있습니다.

+0

+1 영구 연결을 사용할 때의 리소스 제한에 대한 경고. 가능하다면 이걸 피하려고 노력해야합니다. – wimvds

+0

+1 멋지고 균형 잡힌 관점. – anubhava

0

예 선생님. 사용자가 로그인 액션을 수행하기 위해 애플리케이션에 연결할 때마다 o 등록 작업 DB에 대한 연결은 마지막에 열리고 닫아야합니다. Keep Alive 옵션을 사용하면 서버가 종료됩니다.

1

예 예 때마다 연결할 필요가 있습니다. 하지만 실제로는 사용자 이름, 호스트 및 비밀번호가 동일하면 mysql_pconnect()를 사용하여 연결 부하를 줄일 수 있습니다. 동일한 연결 DSN을 가진 활성 자원이 있는지 여부를 확인합니다. 발견되면 새로운 연결을 생성하는 대신 살아있는 한 동일한 객체를 반환합니다.

희망이 있습니다.

1

클래스 사용자는 생성자에서 제공되는 DB 연결 개체를 사용해야합니다. 그러면 생성자가이를 로컬 변수로 저장해야하며 login() 및 register() 메서드는이 변수에 유효한 연결 객체가 포함될 것으로 예상합니다.

그리고 이전 mysql_* 방법 대신 PDO을 사용하십시오. 이렇게하면 DB 연결이 필요한 모든 클래스간에 공유 할 수있는 연결 개체가 제공됩니다.

관련 문제