gpt4 book ai didi

python - 使用python随机填充MySQL数据库 'freezing'

转载 作者:行者123 更新时间:2023-11-29 21:14:56 26 4
gpt4 key购买 nike

我的脚本使用 sqlalchemy 连接到 MySQL 数据库

from sqlalchemy import *
engine = create_engine("mysql+mysqlconnector://user:password@ip:port/dbName")

然后使用 pandas read_csv 函数读取 txt 文件,并使用数据帧在数据库中创建新表:

df.to_sql(tableName, con=engine, flavor='mysql', schema=None, if_exists='replace', index=False)

脚本工作得很好,除了随机地它似乎卡在前面的语句上,即写入数据库。我所说的随机是指这不是特定于文件的,因此上传更大的文件并不需要更长的时间。如果我重新启动它,之前“卡住”的文件会立即上传,但随后它会再次卡住,例如 12 个文件或 1 个文件(非常随机)。它“卡住”的表实际上已完全上传(当我检查数据库时,它全部都在那里),因此它似乎卡住了下一条语句。 (没有抛出错误;脚本似乎运行正常,但没有任何反应)。如有任何帮助,我们将不胜感激。

编辑:

启用调试后,卡住时似乎会执行所有任务(因此该表甚至会显示在数据库中),即

2016-03-16 03:16:19,720 INFO sqlalchemy.engine.base.Engine {}
2016-03-16 03:16:19,806 INFO sqlalchemy.engine.base.Engine COMMIT
2016-03-16 03:16:19,935 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2016-03-16 03:16:20,015 INFO sqlalchemy.engine.base.Engine INSERT INTO `tableName` COLUMNS (***shortened this***)
2016-03-16 03:16:21,482 INFO sqlalchemy.engine.base.Engine COMMIT
2016-03-16 03:16:21,686 INFO sqlalchemy.engine.base.Engine SHOW FULL TABLES FROM `dbName`
2016-03-16 03:16:21,686 INFO sqlalchemy.engine.base.Engine {}

它根本不会继续执行下一个迭代的下一个命令(同样情况并非总是如此;现在似乎在大约 1-3 个表后停止)

最佳答案

这可能是 Python 垃圾收集。检查您的系统事件监视器。 GC 应显示为使用大量 CPU 的 Python 进程。

gc库可以帮助您排除故障并调整垃圾收集器。

关于python - 使用python随机填充MySQL数据库 'freezing',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com