Python MySQLdb随机崩溃,没有错误

2024-05-03 12:22:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python和MySQLdb在一个75M行的大型数据库上执行一些计算。基本的程序流程是遍历每一行,处理数据,然后使用另一个游标将新数据放回该行。处理对于纯SQL来说太复杂了。你知道吗

db1 = MySQLdb.connect(host=HOST, user=USERNAME, passwd=PASSWORD, db=DATABASE)
db1.ping(True)
cursor1 = db1.cursor()
db = MySQLdb.connect(host=HOST, user=USERNAME, passwd=PASSWORD, db=DATABASE)
db2.ping(True)
cursor2 = db2.cursor()

cursor1.execute("SELECT * FROM table")
for row in cursor1:
    cursor2.execute("SELECT * FROM table")
    new_data    = process_stuff(row)

    cursor2.execute("UPDATE table SET column = '%f'", (new_data))

db2.commit()
db1.close()
db2.close()

这通常是有效的。但通常情况下,它会在没有错误消息的情况下自动退出。有时,但并非总是,它会给出一个“MySQL已经消失”的错误。你知道吗

它也相当慢。我知道这是一个相当大的数据库,但它需要24小时来处理一切。这是一个有24GB内存的不错的机器,但它真的需要这么长时间吗?我已经花了好几个小时摆弄这些东西了我的.conf没有真正的收获。你知道吗


Tags: 数据数据库hostexecutedbconnecttableusername