【发布时间】:2014-07-24 13:59:09
【问题描述】:
我在这里看到了一些答案,在每个查询之前打开一个新的 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)
【问题讨论】:
-
您应该将当前功能识别为性能分析的瓶颈。还有这个问题看起来和你的类似:stackoverflow.com/questions/8099902/…
-
@hd1 谁说基本功能没做好?大功告成,我只是在修复第一个 10k-20k 迭代后出现的 bug,它依赖于这个问题。
-
张贴你的代码,@macdonjo,拜托...我去看看
-
我添加了它。不知道它是否会有所帮助。
-
为什么重新发明 SQLAlchemy 很糟糕?