在 MySQL 中殺死一個程序
Preet Sanghavi
2023年1月30日
2022年5月13日
在本教程中,我們將學習如何在 MySQL 中終止程序。
很多時候,特定的 MySQL 程序可能需要很長時間才能執行。
它可能會導致系統出現效能問題。隨著時間的推移,不同的執行緒和語句在系統中變得雜亂無章,從而妨礙了伺服器的整體功能。
為了解決這個問題並避免高資源使用,我們可以殺死不再需要執行的特定程序。
要殺死 MySQL 中的程序,我們必須在登入到你的 MySQL 帳戶後執行兩個簡單的步驟:
- 列出在 MySQL 中執行的所有程序。
- 使用
KILL
命令終止程序。
列出 MySQL 中執行的所有程序
在我們打算刪除或終止任何正在進行的程序之前,我們首先需要識別程序 id
。一旦我們有了程序 id
,我們就可以殺死或終止一個程序。
我們可以使用 show processlist
命令獲取 MySQL 中所有現有程序的列表。執行此命令後,我們將立即獲取登入使用者的正在進行的程序。
正在進行的過程的快照如下。
正如我們所看到的,每個程序都有一個程序 id
,表示使用者名稱的 User
,表示主機伺服器的 Host
,表示資料庫的 db
。
Command
表示正在考慮的命令的型別,Time
表示查詢執行的時間,State
表示程序的狀態,Info
表示與程序相關的任何相關資訊。
使用 KILL
命令終止程序
一旦我們得到要被殺死的程序的 id
,我們就可以使用 kill <id>
命令來終止程序。
讓我們的目標是殺死具有 id
編號 14
的程序。可以使用以下查詢來完成此任務。
KILL 14;
這將使 id
程序為 14
,被殺死。
此外,如果我們希望終止與特定使用者關聯的所有程序,我們可以使用以下查詢執行此操作。
SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='preet' INTO OUTFILE '/tmp/processes_text.txt';
在上面的查詢中,帶有執行緒和語句的新檔案的檔名為 processes_text
。我們可以檢視此檔案以檢查我們是否要終止所有提到的程序。
一旦確定,我們就可以使用以下查詢。
source /tmp/processes_text.txt
因此,在 KILL
命令的幫助下,可以終止 MySQL 資料庫中的一個或多個程序。
Author: Preet Sanghavi