2014-04-22 3 views
0

python (버전 2.7, 3.3)은 프로그램이 종료 된 직후 데이터베이스 연결을 닫습니까? 나는 즉시 다시 잇달아 다시 스크립트를 실행하는 경우짧은 파이썬 스크립트로 데이터베이스 연결을 닫아야합니까?

import MySQLdb 
conn = sqlite3.connect(host="localost", user="adam", password="12345", db ="my_db") 

c = conn.cursor() 

c.execute('''SELECT * FROM MY_TABLE''') 

cur.close() # Do I really need that ? 

conn.close() # Do I really need that ? 

이 닫는 연결에 문제가있을 수 있습니다 : 예를 들어

?

ps. 예, 모든 리소스를 닫는 것이 가장 좋습니다.

답변

0

언급 한 것처럼 코드에서 연결을 명시 적으로 닫아야합니다. 대부분의 경우 연결을 암시 적으로 닫으면 문제가 발생하지 않지만 일부 DBMS에서는 이상한 일이 발생할 수 있습니다.

SQLite는 열려있는 트랜잭션을 롤백합니다.

또한 난 당신이 당신이 인터넷 검색을 가치가있을 수도 MYSQL을 사용하는 경우 with 문을 사용할 수 있습니다 어딘가에 읽어 보시기 바랍니다.

0

mysql과 sqlite3을 섞어서 코드 스 니펫에 조금 혼란스러워합니다.

난 당신이 모든 방법에는 mysql 의미 짐작하고, 당신의 코드를 재 작성 :

import MySQLdb 
conn = MySQLdb.connect(host="127.0.0.1", user="test", passwd="", db="test") 
c = conn.cursor() 
c.execute('''SELECT now()''') 

그럼 연결 상태 확인, 모두 사용 NETSTAT와 MySQL PROCESSLIST은, 내 리눅스에 보이는 그 때 스크립트 종료 , 연결이 닫혀 있습니다 (). 예상대로 TIME_WAIT에 tcp 연결이 남습니다.

관련 문제