python - 何时关闭/打开 MySQL 连接

标签 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()

使用第二条路线有什么优势吗?这两个选项有什么区别吗?

最佳答案

一般来说,您希望使连接保持事件状态的时间尽可能短,但打开和关闭连接会对性能产生影响。

如果您作为一批排序按顺序运行多个查询,则对整个批处理使用一个连接(您的第一个场景)。

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

当然,我的最后一句话没有考虑对应用程序的预期性能的性能影响。

关于python - 何时关闭/打开 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750872/

相关文章:

python - (python) Telegram bot-如何定期发送消息?

python - Odoo 10 - 在标准树和日历 View 中显示来自 One2many 的字段

java - rs.next() 不返回表的第一个值

mysql - 当表1中找到数据时更新表2

mysql - 插入特定表时频繁超时

mysql - 将 .mdf 文件转换为 .sql 脚本 (mac)

python - 构建线段树时是否需要检查是否 lo > hi

python - 在 req.path 中使用 django 的反向函数

java - 尝试将 ResultSet 打印为 PDF 文件

python - 任务栏中的 Tkinter 窗口具有 Overdirect True