嘿家伙, 我有以下问题: 1进程执行一个非常大的查询并将结果写入文件中,进程应该将状态更新到数据库。python mysqldb多个连接
第一thaught:没问题,伪代码:
db = mysqldb.connect()
cursor = db.cursor()
large = cursor.execute(SELECT * FROM VERYLARGETABLE)
for result in large.fetchall():
file.write(result)
if timetoUpdateStatus: cursor.execute(UPDATE STATUS)
问题:听到9万个结果的时候 “大= cursor.execute(SELECT * FROM VERYLARGETABLE)” 从未完成...我想出了一个边界在200万entrys在4列mysql服务器完成查询后30秒,但python进程保持运行几个小时...这可能是一个Python MySQLDB库中的错误..
所以第二次尝试:分贝。使用db.use_results()和fetch_row()查询函数:
db = mysqldb.connect()
cursor = db.cursor()
db.query(SELECT * FROM VERYLARGETABLE)
large = large.use_result()
while true:
for row in large.fetch_row(100000):
file.write(row)
if timetoUpdateStatus: cursor.execute(UPDATE STATUS) <-- ERROR (2014, "Commands out of sync; you can't run this command now")
所以第三次尝试是使用2个MySQL连接...哪个不工作,当我打开第一个消失的第二连接....
任何建议??
是的,这是我的一天 – TekTimmy 2011-05-17 20:00:25