python - 什么可能导致 MySQL 挂起我的 Python 脚本?

标签 python mysql python-2.7

我有一个非常简单的 Python 脚本。它启动了一个包含 10 个进程的池,每个进程:

  1. 为 1,000 条记录发出外部 API 请求
  2. 解析 XML 响应
  3. 将每条记录插入 MySQL 数据库

这里没有什么特别棘手的,但是当我达到 90,000 条记录时脚本挂起。

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

最佳答案

不完全是我想做的,但我发现按要求打开和关闭连接似乎可以插入事情进展。

关于python - 什么可能导致 MySQL 挂起我的 Python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775972/

相关文章:

php - 通过过滤器从多个数据库中选择

mysql - 按两个日期列之间的日期差异排序

python - Python 的 datetime.time 子类化

Python for 循环和数组

python - 选择存在与限制 1

python - 如何阻止非数字输入导致 Python 程序崩溃?

MySQL从600K行中快速选择10个随机行

python - 运行 import tensorflow 后的非法指令(核心转储)

python - Plotly 中的水平条形图使用带有 2 条迹线的袖扣

python - 在 azure 上的 blob 中存储值列表时,“list”对象没有属性 'encode'