2016-03-03 64 views
1

我有一個非常簡單的Python腳本。它揭開序幕10個進程池,每個:什麼可能導致MySQL掛起我的Python腳本?

  1. 製作1000條記錄
  2. 外部API請求解析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 
+0

連接到數據庫的方式和頻率? (即,你是否在做一些愚蠢的事情,例如爲每個記錄寫入一個單獨的數據庫連接?) –

+0

這將有助於查看腳本。 – tomlester

+0

@JohnGordon原來沒有。我在腳本開始時打開連接,完成工作並在腳本結尾處關閉連接。我只是試圖打開和關閉每個操作的連接(愚蠢的東西),實際上讓我更深入。 –

回答

0

不完全是我想要做的,但我發現按要求打開和關閉連接似乎會使事情發生變化。