반응형
누구든지 이것에 대한 경험이 있습니까?
일부 코드가 db 연결에 상태 저장 작업을 수행하고 (아마도 실수로) 자체적으로 정리되지 않으면 연결을 닫을 때 일반적으로 정리되는 상태가 대신 재활용 된 연결을 가져 오는 후속 코드로 전파됩니다.
해결 방법
응용 프로그램이 트랜잭션 격리 수준 (일반적으로 그렇지 않음)과 같은 연결 전체 옵션을 변경하지 않는 한 SQLA의 연결 풀을 사용할 때 연결의 잔여 상태에 대해 걱정할 필요가 없습니다. SQLA의 연결 풀은 다시 체크인 될 때 연결에서 connection.rollback ()을 발행하여 트랜잭션 상태 또는 잠금이 지워집니다.
특히 동일한 컴퓨터에서 유닉스 소켓을 통해 연결하는 경우 MySQL의 연결 시간이 매우 빠를 수 있습니다. 연결 풀을 사용하는 경우 MySQL의 클라이언트 라이브러리가 8 시간 이상 유휴 상태 인 연결을 자동으로 종료하므로 일정 시간이 지나면 연결이 재활용되도록해야합니다 (SQLAlchemy에서는 pool_recycle 옵션 임).
풀 구현을 기본값 인 QueuePool에서 NullPool로 변경하여 SQLA 응용 프로그램을 사용하여 연결 풀과 비 연결 풀을 신속하게 수행 할 수 있습니다. 풀 구현은 실제로 아무것도 풀지 않는 풀 구현입니다. 프록시 연결이 획득되고 나중에 닫힙니다.
참조 페이지 https://stackoverflow.com/questions/405352
반응형
'MySql' 카테고리의 다른 글
MySQL MYSQL에서 INSERT TRIGGER 전에 만들기 (0) | 2020.11.01 |
---|---|
MySQL mysql (5.6) 데이터베이스에 json 배열을 저장할 데이터 유형 (0) | 2020.10.31 |
MySQL Flask SQLAlchemy 값 또는 다른 필터 (0) | 2020.10.31 |
MySQL SQL-필드 목록의 열이 모호합니다. (0) | 2020.10.31 |
MySQL mysql show processlist는 많은 프로세스를 나열합니다. sleep 및 info = null? (0) | 2020.10.31 |
댓글