python - 为每个查询打开一个新的 MySQL 游标是否很慢?

标签 python mysql

我在这里看到了一些答案,它们在每个查询之前打开一个新的 MySQL 游标,然后将其关闭。

这么慢吗?我不应该通过将其作为参数传递来回收光标吗?

我有一个执行无限循环的程序,因此最终连接将在默认的 8 小时后超时。

编辑:

根据要求,这是处理 SQL 查询的相关代码:

def fetch_data(query):
    try:
        cursor = db.Cursor()
        cursor.execute(query)
        return cursor.fetchall()
    except OperationalError as e:
        db = fetchDb()
        db.autocommit(True)
        print 'reconnecting and trying again...'
        return fetch_data(query)

最佳答案

当然,重新连接数千次会花费更多时间。你最好将它设置为你的类的属性,如下所示:

class yourClass():
    self.db = ...
    self.cursor = self.con.Cursor()

    # do something
    def fetch_data(self, query):
        try:
            if self.cursor:
                self.cursor.execute(query)
            else:
                raise OperationalError
            return self.cursor.fetchall()
        except OperationalError as e:
            self.db = fetchDb()
            self.db.autocommit(True)
            print 'reconnecting and trying again...'
            return fetch_data(query)    

关于python - 为每个查询打开一个新的 MySQL 游标是否很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923781/

相关文章:

python - 导入错误: No module named 'pandas' (inside virtualenv)

python - 口是心非在 macOS 上不起作用,得到 : env: python2: No such file or directory

c# - 使用c#从Mysql表中检索数据

MySQL-错误 : #1064

php - 生成具有多行的Word文件时出错

python - 带有 q 列表的多级列 MultiIndex groupby 对象上的 Pandas 分位数

python - 理解和评估强化学习中的不同方法

python - 无法转到下一页

mysql - 我的 SQL 查询中的语法错误

mysql - SQL只选择不同的最高值