[PYTHON] Python MySQLdb : connection.close () VS. cursor.close ()
PYTHONPython MySQLdb : connection.close () VS. cursor.close ()
MySQLdb를 사용하여 Python을 통해 MySQL-Server에 연결하는 경우. 이 같은 연결 및 커서를 만듭니다.
connection = MySQLdb.connect(...)
cursor = connection.cursor()
# process
MySQL 처리가 완료되면 연결을 닫아야합니다. 지금 나는 궁금해하고있다 : 일을함으로써 연결을 닫는 것으로 충분하다 :
connection.close()
또는 먼저 커서를 닫은 다음 연결을 닫아야합니까? 이렇게 :
cursor.close()
connection.close()
해결법
-
==============================
1.더 적은 것을 생각하십시오. 더 많은 도구를 사용하십시오.
더 적은 것을 생각하십시오. 더 많은 도구를 사용하십시오.
from contextlib import closing with closing( connection.cursor() ) as cursor: ... use the cursor ... # cursor closed. Guaranteed. connection.close()
-
==============================
2.커서를 끝내 자마자 커서를 닫아도 더 이상 쓸모가 없으므로 아마도 최선의 방법 일 것입니다. 그러나 db 연결 후 닫는 것이 위험한 부분은 보지 못했습니다. 그러나 당신이 그것을 다음과 같이 설정할 수 있기 때문에 :
커서를 끝내 자마자 커서를 닫아도 더 이상 쓸모가 없으므로 아마도 최선의 방법 일 것입니다. 그러나 db 연결 후 닫는 것이 위험한 부분은 보지 못했습니다. 그러나 당신이 그것을 다음과 같이 설정할 수 있기 때문에 :
cursor = conn.cursor()
실수로 다시 지정하고 DB 연결이 닫히면 오류가 발생하므로 이전에 닫는 것이 좋습니다. 따라서 닫힌 연결로 우발적 인 재 할당을 방지하려면 먼저 닫아야 할 수 있습니다.
(일부는 가비지 콜렉터에 의해 수집되기 때문에 전혀 닫히지 않습니다 (참조 : 파이썬에서 sqlite로 커서를 닫아야합니까?))
참고 문헌 : MySQLdb를 사용하여 커서를 닫아야하는 경우
파이썬에서 sqlite를 사용하면 커서를 닫아야합니까?
-
==============================
3.이 특정 상황에서 연결을 닫으면 충분합니다. 여러 개의 커서 등으로 작업하는 경우 적절한 자원 관리에 신경을 써야합니다.
이 특정 상황에서 연결을 닫으면 충분합니다. 여러 개의 커서 등으로 작업하는 경우 적절한 자원 관리에 신경을 써야합니다.
from https://stackoverflow.com/questions/5504340/python-mysqldb-connection-close-vs-cursor-close by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Tkinter 창이 열리는 위치를 지정하는 방법? (0) | 2018.10.25 |
---|---|
[PYTHON] 파이썬 dict : get 대 setdefault (0) | 2018.10.25 |
[PYTHON] Python Selenium에서 속성으로 요소를 찾는 방법이 있습니까? (0) | 2018.10.25 |
[PYTHON] Python try finally 블록 반환 [duplicate] (0) | 2018.10.25 |
[PYTHON] 파이썬에서 클래스 foo와 클래스 foo (객체)의 차이점 (0) | 2018.10.25 |