何时关闭/打开MySQL连接
我有一个程序,大概会执行1亿次的选择和插入操作。
在执行了N条语句之后,关闭再重新打开游标(cursor)有没有好处?还是说我只需要在一开始打开一次,然后在最后关闭就行了?
有两个选择:
def connect(self):
if self.conn:
self.conn.close()
self.conn = MySQLdb.connect (...)
self.cursor = self.conn.cursor()
1)
self.connect()
# all statements
self.conn.close()
2)
self.connect()
for num, sql_statement in enumerate(sql_statements):
if num == N:
self.connect()
# sql statement
self.conn.close()
使用第二种方法有什么好处吗?这两种选择之间有什么区别吗?
1 个回答
3
一般来说,你希望保持连接的时间尽可能短,但打开和关闭连接会影响性能。
如果你要一次性运行多个查询,可以用一个连接来处理整个批次(就像你提到的第一个情况)。
不过,如果每个操作都是独立的事务,那么我觉得最好的办法是为每个操作打开和关闭连接。
当然,我刚才说的并没有考虑到这对你应用程序性能的影响。