2015-04-17 91 views
0

當我確實顯示processlist時;MySQL查詢狀態中止

它顯示狀態Killed和查詢NULL在其中一行。

我們應該用Kill QUERY_ID殺死這個NULL查詢嗎?

這會影響數據庫嗎?

回答

0

當您運行show processlist,你會得到的東西作爲

mysql> show processlist \G 
*************************** 1. row *************************** 
    Id: 102524 
    User: someuser 
    Host: localhost 
    db: db_name 
Command: Query 
    Time: 0 
    State: NULL 
    Info: show processlist 
*************************** 2. row *************************** 
    Id: 102532 
    User: someuser 
    Host: host ip 
    db: db_name 
Command: Query 
    Time: 0 
    State: Sending data 
    Info: select ....., 
2 rows in set (0.00 sec) 

這會列出其當前正在得到執行,如果你想殺死他們中的一個,你需要使用ID查詢

例如上面,如果我需要殺死查詢其ID是102532這是可以做到的

kill 102532 

現在什麼如果你正在運行一個使用某個查詢的報告,並且它正在執行或發送數據,並且如果你在中期殺死了,那麼考慮到查詢返回一些數據,報告數據將沒有適當的值。

在大多數情況下,選擇比插入,刪除或更新需要更多時間,除非其批量刪除或更新或插入。

只要對數據庫的影響是關心選擇它將不會有影響,插入/更新/刪除是的,如果查詢仍處於活動狀態,您可能沒有插入/更新或刪除數據。

你可以使用

show full processlist 
+0

我可以重新啓動mysql的那裏是在PROCESSLIST殺死查詢查詢的完整信息? –

+0

如果你重新啓動mysql,那麼所有的查詢都會被終止,並且你不需要手動執行它,我假設一些heave查詢正在查殺mysql服務器,所以你需要這樣做,所以是的,重啓mysql服務器會導致這種情況過程中的所有查詢。 –