[php] PDO와 데이터베이스 연결 타임아웃

PHP 애플리케이션에서 PDO (PHP 데이터 객체)를 사용하여 데이터베이스에 연결할 때 종종 연결 시간 초과 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 연결 타임아웃을 설정하는 방법을 살펴보겠습니다.

연결 타임아웃이란 무엇인가?

연결 타임아웃은 PHP 애플리케이션이 데이터베이스 서버에 연결을 요청한 후 일정 시간 동안 응답을 받지 못할 경우 발생하는 오류를 말합니다. 이때 특정 시간 내에 응답을 받지 못하면 애플리케이션은 연결 시간 초과 오류를 반환합니다.

PDO 연결 타임아웃 설정하기

PDO를 사용하여 데이터베이스에 연결할 때 연결 타임아웃을 설정하려면 setAttribute 메서드를 사용해야 합니다. 아래는 연결 타임아웉을 30초로 설정하는 예제 코드입니다.

try {
    $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
    $pdo->setAttribute(PDO::ATTR_TIMEOUT, 30);
    // 기타 설정 및 쿼리 수행
} catch (PDOException $e) {
    echo '연결 오류: ' . $e->getMessage();
}

위 코드에서 setAttribute 메서드를 사용하여 PDO::ATTR_TIMEOUT 상수를 통해 연결 타임아웃을 설정하고 있습니다.

주의사항

연결 타임아웃을 설정할 때는 네트워크 지연과 데이터베이스 응답 시간을 고려하여 적절한 값을 선택해야 합니다. 너무 짧은 시간으로 설정할 경우 정상적인 연결조차 어려울 수 있으며, 너무 긴 시간으로 설정할 경우 애플리케이션이 응답을 기다리는 시간이 길어질 수 있습니다. 적절한 값을 선택하여 설정하는 것이 중요합니다.

이상으로 PDO와 데이터베이스 연결 타임아웃 설정에 대해 알아보았습니다.

참고문헌:

수고하셨습니다!