PDO를 사용하여 데이터베이스에 연결할 때마다 PDO 속성 PDO :: ATTR_PERSISTENT를 매번 사용해야합니까? 이는 사용자에게 지속적인 연결을 생성하고 데이터베이스 연결을 요청할 때마다 새 연결을 다시 설정하는 대신 동일한 연결을 사용하게됩니다. 이것이 기본값이 아닌 이유는 무엇입니까? 그것을 사용하지 않을 이유가 있습니까?매번 PDO :: ATTR_PERSISTENT를 사용해야합니까?
답변
영구 연결 문제는 MySQL에서 사용할 수있는 연결 수가 제한된다는 것입니다. 무언가 잘못되어 연결이 닫히지 않으면 서버는 오랫동안 열어 두어야합니다. 서버의 연결이 끊어지면 다른 사람이 개입 할 때까지 연결된 모든 응용 프로그램을 사용할 수 없게됩니다.
당신은 아마 성능과 증가에 매우 점진적 디그레이 당신을 떠나,주의하지 않으면 개월로 누출 수있는 일이 수시로 잘못 기대 이상 - 사용 자원의 잘못된 상황에서 문제가 있습니다 시간이 지남에 따라 시스템 활용도가 향상됩니다 (모두 이득이 없음).
다음은 유용한 도움말 중 하나입니다. 그것은 MySQL에 초점을 맞추지 만, 대부분의 동일한 생각은 DBMS의 스펙트럼 전반에 걸쳐 일반화 될 수 있습니다. 제대로 트랜잭션을 처리하지 않는 경우
첫 번째 링크가 끊어졌습니다. –
, 그것은 혼란을 야기 할 수있는 거래에서 이미 "새로운"영구 연결로 이어질 수 있습니다. 다음 코드에 의한
단지 하나의 간단한 경우 :
<?php
$pdo = getCustomPersistantPDO();
$pdo->beginTransaction();
if(rand() % 2 === 0) {
//simulate a poorly handled error
exit();
}
$pdo->commit();
?>
요청 1
(starts w/o a transaction open)
openTransaction
incorrectly handled error
(never closes transaction)
요청 2 :
(start w/ a transaction open, because it was not closed in the previous connection.)
openTransaction -> fails due to already open
BTW 예 정확한 버전이다
<?php
$pdo = getCustomPersistantPDO();
$pdo->beginTransaction();
if(rand() % 2 === 0) {
//simulate a correctly handled error
$pdo->rollBack();
exit();
}
$pdo->commit();
?>
공포를 보여주는 +1 – Charles
- 1. PDO :: exec() 또는 PDO :: query()?
- 2. 은 중복되는 PDO :: PARAM_INT입니까?
- 3. PDO 오해
- 4. PHP PDO 및 저장 함수
- 5. Assembly.Load는 매번 동일한 어셈블리를로드합니까?
- 6. asp.net에서 매번 UserControl 스타일로드
- 7. PHP에서 매번 db를 연결해야합니까?
- 8. 관련 레코드는 매번 삽입됩니다.
- 9. 조건을 매번 확인하십시오.
- 10. 매번 주소를 찾는 방법
- 11. Silverlight XAP이 매번 다운로드됩니다.
- 12. flickr_fu에서 flickr하는 사진은 매번 다른 ID로 돌아옵니다.
- 13. PDO 바인드 데이터 유형 및 비교
- 14. PHP에서 PDO,이 PDO mysql 코드를 개선하는 방법
- 15. MySQL과 PDO : 이론적으로 PDO :: lastInsertId가 실패 할 수 있습니까?
- 16. PDO 버퍼링되지 않은 쿼리
- 17. PDO - 테이블 접두사로 작업하기
- 18. PDO 문 실행 시간
- 19. PHP PDO 기본 문
- 20. PHP PDO - CodeIgniter로 마이그레이션
- 21. PHP PDO 쿼리 함수
- 22. PHP PDO 준비 문
- 23. MySQL 대 PDO
- 24. 날짜에 대한 PDO :: PARAM?
- 25. PDO Microsoft Access
- 26. PDO 쿼리가 작동하지 않습니다.
- 27. 이상한 PHP PDO 오류
- 28. PDO 캐치 결과
- 29. PDO 개체 작업 - MySQL
- 30. PDO 연결 문제
다른 답변을 수락하도록 업데이트 할 수 있습니까? 나는 Kendall 's가 훨씬 좋기 때문에 나는 나의 것을 삭제하려고 노력했다. 그러나 나의 것이 받아 들일 수 없기 때문에 나는 그것을 삭제할 수 없다. –