用python随机填充MySQL数据库';冻结';

用python随机填充MySQL数据库';冻结';,python,mysql,database,pandas,sqlalchemy,Python,Mysql,Database,Pandas,Sqlalchemy,我的脚本使用sqlalchemy连接到MySQL数据库 from sqlalchemy import * engine = create_engine("mysql+mysqlconnector://user:password@ip:port/dbName") 然后使用pandas read_csv函数读取txt文件,并使用dataframe在数据库中创建一个新表: df.to_sql(tableName, con=engine, flavor='mysql', schema=None, if

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

from sqlalchemy import *
engine = create_engine("mysql+mysqlconnector://user:password@ip:port/dbName")
然后使用pandas read_csv函数读取txt文件,并使用dataframe在数据库中创建一个新表:

df.to_sql(tableName, con=engine, flavor='mysql', schema=None, if_exists='replace', index=False)
脚本工作得非常好,只是它似乎被上一条语句卡住了,即写入数据库。我所说的随机性是指这不是特定于文件的,因此,例如,上传较大的文件不会花费更长的时间。如果我重新启动它,它之前“冻结”的文件会立即上传,但随后它会再次冻结,比如说12个文件之后或1个文件之后(非常随机)。它“冻结”的表实际上已完全上载(当我检查数据库时,它的所有内容都在那里),因此从转到下一个语句时,它似乎已冻结。(不会抛出任何错误;脚本似乎正在正常运行,除非什么也没有发生)。感谢您的帮助

编辑:

启用调试后,当冻结时,它似乎会执行所有任务(因此,表甚至会显示在数据库中)


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

可能是Python垃圾收集。签入系统活动监视器。GC应该显示为使用大量CPU的Python进程


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

它是远程数据库吗?你确定你有互联网,当它像那样卡住了吗?是的,它是一个远程数据库。100%正网络未断开。将echo设置为true,基本上“冻结”在这里:
code
INFO sqlalchemy.engine.base.engine{}INFO sqlalchemy.engine.base.engine提交信息sqlalchemy.engine.base.engine开始(隐式)INFO sqlalchemy.engine.base.engine插入等。。。INFO sqlalchemy.engine.base.engine({'list在这里'})INFO sqlalchemy.engine.base.engine COMMIT INFO sqlalchemy.engine.base.engine显示
dbname
INFO sqlalchemy.engine.base.engine{}
code
CPU很少使用,GC进程未列出。使用pycharm作为IDE,脚本“冻结”时使用1.3%的CPU。
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 {}