是什么导致MySQL挂起我的Python脚本?
我有一个非常简单的Python脚本。它启动了10个进程池,每个进程:是什么导致MySQL挂起我的Python脚本?,python,mysql,python-2.7,Python,Mysql,Python 2.7,我有一个非常简单的Python脚本。它启动了10个进程池,每个进程: 对1000条记录发出外部API请求 解析XML响应 将每条记录插入MySQL数据库 这里没有什么特别棘手的事情,但当我达到90000条记录时,脚本就挂起了 mysql> show processlist; +----+------+-----------------+---------------+---------+------+-------+------------------+ | Id | User | Hos
mysql> show processlist;
+----+------+-----------------+---------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+---------------+---------+------+-------+------------------+
| 44 | root | localhost:48130 | my_database | Sleep | 57 | | NULL |
| 45 | root | localhost:48131 | NULL | Sleep | 6 | | NULL |
| 59 | root | localhost | my_database | Sleep | 506 | | NULL |
| 60 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------------+---------------+---------+------+-------+------------------+
我有大约一百万条记录要导入,所以我还有很长很长的路要走
如何防止挂起并保持脚本移动
Python 2.7.6
MySQL-python 1.2.5
不完全是我想做的,但我发现按要求打开和关闭连接似乎可以推动事情的发展。不完全是我想做的,但我发现按要求打开和关闭连接似乎可以推动事情的发展。您是如何和多久连接到数据库的?(例如,您是否正在做一些愚蠢的事情,比如为每个记录写入创建单独的数据库连接?)查看脚本会有所帮助。@JohnGordon最初没有。我在脚本开始时打开连接,完成工作,并在脚本结束时关闭连接。我只是试着打开和关闭每个操作的连接(愚蠢的东西),这让我更进一步,实际上。也许外部API正在限制你的请求?您的脚本是挂在API读取、XML解析还是DB写入上?DB写入是个问题,但在目前有限的测试中,当我边走边打开和关闭时,问题似乎不那么严重。我讨厌这样做,但也许有一个超时设置我可以调整。我会调查的。我很确定这是MySQL的问题(不是Python),但我想在文章中加入上下文?(例如,您是否正在做一些愚蠢的事情,比如为每个记录写入创建单独的数据库连接?)查看脚本会有所帮助。@JohnGordon最初没有。我在脚本开始时打开连接,完成工作,并在脚本结束时关闭连接。我只是试着打开和关闭每个操作的连接(愚蠢的东西),这让我更进一步,实际上。也许外部API正在限制你的请求?您的脚本是挂在API读取、XML解析还是DB写入上?DB写入是个问题,但在目前有限的测试中,当我边走边打开和关闭时,问题似乎不那么严重。我讨厌这样做,但也许有一个超时设置我可以调整。我会调查的。我很确定这是MySQL的问题(不是Python),但我想在文章中加入上下文。