2012-06-04 30 views
7

我殺死的線程仍在我的線程列表中如何消除它?仍然在我的流程列表中被殺的進程

+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+ 
| Id | User | Host  | db   | Command | Time | State  | Info                         | 
+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+ 
| 678 | root | localhost | hthtthv  | Killed | 36923 | query end | INSERT INTO `gtgttg` VALUES (1,'tgtg'),(2,'Shopping'),(4,'tgtgtg'),(   | 
| 695 | root | localhost | NULL  | Query |  0 | NULL  | show processlist                      | 
+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 
+0

[MySQL查詢不被殺死後消失(http://stackoverflow.com/questions/5043268/mysql-query-not-going-away-after-being-killed) – ckujau

回答

17

它需要恢復它所做的動作,所以這可能需要很長時間。如果它是一個InnoDB數據庫,例如你可以看一下這個問題:https://dba.stackexchange.com/questions/5654/internal-reason-for-killing-process-taking-up-long-time-in-mysql

所以在最後:你需要等待它被淘汰

+1

的可能重複多長時間採取? –

+1

這取決於你的查詢,結果數量,你的硬件,你的軟件,星座和天氣;)..又名,很難說。例如,對於INNODB,插入操作可能會花費更長的時間。檢查第一個答案:更長的意思是「最多30次」.... – Nanne

+1

我跑了8個小時的原始查詢。這是否意味着可能需要240小時?我正在使用innodb數據庫。有沒有其他可行的方法來殺死這個查詢? –

1

就我而言,我的/ var分區滿了,在哪裏寫入MySQL binlog。一旦我釋放了一些磁盤空間,死亡的連接立即消失。