我需要用一个简短的python脚本关闭数据库连接吗?

2024-05-23 15:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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 ?

如果我一次又一次地运行这个脚本,那么关闭连接会有问题吗?在

是的,我知道最好的做法是关闭所有资源。在


Tags: import程序数据库hostclosedbthatconnect
2条回答

你的代码片段有点混乱,似乎是把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检查连接状态,在我的linux上,当脚本结束时,连接关闭,让tcp连接在等待时间内如期进行。在

正如您提到的,您应该在代码中显式地关闭连接。 大多数情况下,隐式关闭连接不会导致问题,但是对于某些dbms,可能会发生一些奇怪的事情。在

例如,SQLite将回滚所有打开的事务。在

另外,我还读到在使用MYSQL时可以使用with语句的地方可能值得google一下。在

相关问题 更多 >