何时关闭/打开MySQL连接

时间:2014-09-09 17:48:18

标签: python mysql

我有一个程序可能运行100M选择和插入。

在N个语句后关闭和重新打开游标有什么好处吗?或者我应该只打开一次 - 在开始时 - 然后在结束时关闭它?

两个选项:

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 个答案:

答案 0 :(得分:2)

通常,您希望在尽可能短的时间内保持连接处于活动状态,但是对打开和关闭连接会产生性能影响。

如果您按顺序运行多个查询作为一批排序,则对整个批次使用一个连接(第一个方案)。

但是,如果语句是离散事务,那么我认为最好的方法是打开和关闭每个语句的连接。

当然,我的上一份声明并未考虑到您的应用程序的预期性能对性能的影响。