> 백엔드 개발 > 파이썬 튜토리얼 > Python 데이터베이스 연결 풀 기술 요약

Python 데이터베이스 연결 풀 기술 요약

高洛峰
풀어 주다: 2016-10-18 11:11:55
원래의
2554명이 탐색했습니다.

스레드에서 데이터베이스를 요청하는 데 시간이 너무 오래 걸린다고 생각되면 Python 데이터베이스 연결 풀을 사용하여 이러한 측면의 단점을 개선할 수 있습니다. 다음은 기사의 구체적인 소개입니다. 기사에서는 Python 데이터베이스 연결 풀링에 대해 더 잘 이해하고 있습니다.

어제 데이터베이스 요청을 위해 스레드 500개 열기 테스트를 했는데 시간이 얼마나 걸릴지 모르겠습니다. 즉, 동시에 많은 스레드를 실행하면 효율성이 얼마나 됩니까? 그래서 데이터베이스 연결 풀 기술을 사용하면 이러한 연결 작업을 크게 향상시킬 수 있지 않을까 생각했습니다. 잠시 정리한 후 자주 데이터베이스 연결을 설정하고 닫는 효율성과 연결 풀 간의 성능 비교를 테스트해 보겠습니다!

1. DBUtils 모듈 학습

DBUtils는 실제로 두 개의 하위 모듈을 포함하는 Python 패키지입니다. 하나는 DB-API 2 모듈에 연결하기 위한 것이고 다른 하나는 일반적인 PyGreSQL 모듈에 연결하기 위한 것입니다. . 전역 DB-API 2개 변수

SteadyDB.py

를 사용하여 데이터베이스 연결을 안정화

PooledDB.py

연결 풀

PerciousDB.py

영구적인 데이터베이스 연결 유지(영구 연결)

SimplePooledDB.py

간단한 연결 풀 PS: 먼저 DB-API를 추출해 보겠습니다

설치하면 최상위 모듈인 PertantDB와 PooledDB의 두 가지 모듈에 대한 기본 서비스가 제공됩니다.

DBUtils.PerciousDB는 DB-API 2 모듈을 사용하여 견고하고 스레드로부터 안전한 영구 데이터베이스 연결을 구현합니다. 다음 그림은 PertantDB 사용 시 연결 계층 단계를 보여줍니다. DBUtils.PooledDB는 DB-API 2 모듈을 사용하여 견고하고 스레드로부터 안전하며 캐시되고 재사용 가능한 데이터베이스 연결을 구현합니다. 다음 그림은 PooledDB를 사용할 때의 워크플로를 보여줍니다.

현재 선택할 수 있는 두 가지 모듈이 있습니다: PertantDB와 PooledDB, 둘 다 성능을 향상하고 데이터베이스 안정성을 유지하기 위해 데이터베이스 연결을 재사용하도록 설계되었습니다.

python setup.py install

특정 모듈 학습:

DBUtils.SimplePooledDB는 매우 간단한 데이터베이스 연결 풀 구현입니다. 본격적인 PooledDB 모듈보다 많은 기능이 부족합니다. DBUtils.SimplePooledDB는 기본적으로 Webware의 구성 요소인 MiscUtils.DBPool과 유사합니다. 데모 프로그램이라고 생각하시면 됩니다.

DBUtils.SteadyDB는 DB-API 2에서 설정된 원래 연결을 기반으로 "강력한" 데이터베이스 연결을 구현하는 모듈입니다. "하드" 연결은 연결이 닫힌 후 또는 작업 수 제한이 사용된 후 다시 연결된다는 의미입니다. 일반적인 예는 프로그램이 계속 실행 중이고 데이터베이스에 액세스해야 하는 동안 데이터베이스가 다시 시작되는 경우 또는 프로그램이 방화벽 뒤의 원격 데이터베이스에 연결되어 방화벽이 다시 시작될 때 상태가 손실되는 경우입니다.

일반적으로 SteadyDB를 직접 사용할 필요는 없으며 그냥 대신 사용하면 됩니다.


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿