2010-04-26 93 views
3

我正在創建和測試mysql連接查詢,但每次到目前爲止它都會導致數據庫表鎖定並且網站掛起。然後我必須調用主機並殺死鎖定的查詢。 這是我可以從phpmyadmin做的事情,所以當我調整腳本工作時不打擾他們嗎?謝謝你的回覆。如何殺死鎖定的mysql查詢

回答

13

這可以從phpMyAdmin的頭版來完成。尋找「進程」鏈接。

您也可以運行命令SHOW PROCESSLIST(或SHOW FULL PROCESSLIST)。這將向您顯示您可以操作的所有查詢(即您自己的)。隨着每個查詢將是一個標識符。您可以向任何這些標識符發出KILL命令來終止查詢。

此外,你應該考慮EXPLAIN測試您的查詢。

+0

謝謝,這將會訣竅。 – jcure 2010-04-26 03:16:18

0

我不知道phpMyAdmin,但免費的「mysql工具」軟件包包含一個名爲MySql Adminstrator的應用程序,它可以讓你做到這一點。它顯示你當前正在運行查詢並提供殺線程按鈕(我相信這是在服務器健康選項卡中)。

的MySQL GUI工具/ MySQL工作臺遠遠優於phpMyAdmin的反正。如果你在本地運行數據庫,或者使用ssh訪問,那麼真的沒有理由使用phpMyAdmin。

+0

很好的建議,謝謝。我將在本地安裝並首先在那裏進行測試。 – jcure 2010-04-26 03:17:21

0

我不記得了一種從phpMyAdmin的做到這一點。您可以嘗試在本地測試副本數據庫上測試您的查詢,而不是直播,以便獲得更好的吞吐量,直到它不再鎖定爲止。

0

最簡單的方法是通過mytop,點擊「k」並輸入要殺死的線程ID。

Id  User   Host/IP   DB  Time Cmd State Query                             
    --  ----   -------   --  ---- --- ----- ----------