본문 바로가기
Coding/Python

[Python & SQLAlchemy] create_engine 함수에 사용되는 인자들 기능 및 설명

by 포스트it 2024. 3. 15.
728x90
반응형

 

[Python & SQLAlchemy] create_engine 함수에 사용되는 인자들 기능 및 설명

create_engine 함수는 SQLAlchemy에서 데이터베이스 엔진을 생성할 때 사용되며,

데이터베이스와의 모든 통신을 처리합니다. 아래에 create_engine 함수에 전달된 각각의 인자들이 어떤 역할을 하는지 보시죠 !

 

 

- DATABASE_URL: 데이터베이스 연결 URL입니다. 이 URL에는 데이터베이스의 종류, 사용자 이름, 비밀번호, 호스트, 포트, 데이터베이스 이름 등의 정보를 포함

EX) "postgresql://username:password@localhost:5432/mydatabase"

 

- echo: SQLAlchemy 로깅을 활성화하거나 비활성화합니다. True로 설정하면 SQLAlchemy가 수행하는 모든 SQL 문을 콘솔에 출력합니다. 개발 과정에서 SQL 문의 실행을 확인하기 위해 유용함.

 

- pool_size: 연결 풀의 크기를 설정합니다. 연결 풀은 데이터베이스 연결의 캐시로, 사용 가능한 데이터베이스 연결을 관리합니다. pool_size는 동시에 유지할 수 있는 연결의 최대 수를 지정.

 

- pool_recycle: 연결 풀에 있는 연결을 재활용하기 전에 유지되는 최대 시간(초)을 설정합니다. 이 시간이 지나면 연결이 자동으로 닫히고 새 연결이 열립니다. 이는 오랜 시간 동안 열려 있는 연결로 인한 데이터베이스 리소스 낭비를 방지.

 

- pool_pre_ping: True로 설정하면, SQLAlchemy는 풀에서 연결을 가져올 때마다 사전에 "ping" 연산을 수행하여 연결의 유효성을 검사합니다. 연결이 더 이상 유효하지 않은 것으로 판단되면, 연결은 폐기되고 새 연결이 생성됩니다. 이는 네트워크 중단이나 데이터베이스 서버의 재시작과 같은 문제로부터 애플리케이션을 보호.

 

- pool_timeout: 연결 풀에서 사용 가능한 연결을 얻기 위해 대기하는 최대 시간(초)을 설정합니다. 지정된 시간 내에 사용 가능한 연결이 없으면 TimeoutError가 발생.

 

- max_overflow: pool_size를 초과하여 생성할 수 있는 연결의 최대 수를 설정합니다. 연결 풀이 가득 차 있을 때 추가 연결 요청이 들어오면, 이 매개변수가 지정하는 수만큼 추가 연결이 생성될 수 있습니다. 추가 연결은 사용 후 즉시 폐기됩니다. 이러한 매개변수들은 애플리케이션의 성능과 안정성을 높이기 위해 데이터베이스 연결 관리 전략을 세밀하게 조정하는 데 사용.


결과

728x90
반응형

댓글