본문 바로가기
MySql

MySQL 연결 풀링 질문 : 그만한 가치가 있습니까?

by 베이스 공부 2020. 10. 31.
반응형


누구든지 이것에 대한 경험이 있습니까?

일부 코드가 db 연결에 상태 저장 작업을 수행하고 (아마도 실수로) 자체적으로 정리되지 않으면 연결을 닫을 때 일반적으로 정리되는 상태가 대신 재활용 된 연결을 가져 오는 후속 코드로 전파됩니다.

 

해결 방법

 

응용 프로그램이 트랜잭션 격리 수준 (일반적으로 그렇지 않음)과 같은 연결 전체 옵션을 변경하지 않는 한 SQLA의 연결 풀을 사용할 때 연결의 잔여 상태에 대해 걱정할 필요가 없습니다. SQLA의 연결 풀은 다시 체크인 될 때 ​​연결에서 connection.rollback ()을 발행하여 트랜잭션 상태 또는 잠금이 지워집니다.

특히 동일한 컴퓨터에서 유닉스 소켓을 통해 연결하는 경우 MySQL의 연결 시간이 매우 빠를 수 있습니다. 연결 풀을 사용하는 경우 MySQL의 클라이언트 라이브러리가 8 시간 이상 유휴 상태 인 연결을 자동으로 종료하므로 일정 시간이 지나면 연결이 재활용되도록해야합니다 (SQLAlchemy에서는 pool_recycle 옵션 임).

풀 구현을 기본값 인 QueuePool에서 NullPool로 변경하여 SQLA 응용 프로그램을 사용하여 연결 풀과 비 연결 풀을 신속하게 수행 할 수 있습니다. 풀 구현은 실제로 아무것도 풀지 않는 풀 구현입니다. 프록시 연결이 획득되고 나중에 닫힙니다.

 

참조 페이지 https://stackoverflow.com/questions/405352

 

 

반응형

댓글