明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Mysql中對于使用kill命令處理死鎖問題詳細說明

[摘要]這篇文章主要介紹了Mysql使用kill命令解決死鎖問題(殺死某條正在執(zhí)行的sql語句)的相關資料,需要的朋友可以參考下在使用mysql運行某些語句時,會因數(shù)據(jù)量太大而導致死鎖,沒有反映。這個時候,就需要kill掉某個正在消耗資源的query語句即可, KILL命令的語法格式如下:KILL [CO...
這篇文章主要介紹了Mysql使用kill命令解決死鎖問題(殺死某條正在執(zhí)行的sql語句)的相關資料,需要的朋友可以參考下

使用mysql運行某些語句時,會因數(shù)據(jù)量太大而導致死鎖,沒有反映。這個時候,就需要kill掉某個正在消耗資源的query語句即可, KILL命令的語法格式如下:


KILL [CONNECTION   QUERY] thread_id

每個與mysqld的連接都在一個獨立的線程里運行,您可以使用SHOW PROCESSLIST語句查看哪些線程正在運行,并使用KILL thread_id語句終止一個線程。

KILL允許自選的CONNECTION或QUERY修改符:KILL CONNECTION與不含修改符的KILL一樣:它會終止與給定的thread_id有關的連接。KILL QUERY會終止連接當前正在執(zhí)行的語句,但是會保持連接的原狀。

如果您擁有PROCESS權限,則您可以查看所有線程。如果您擁有超級管理員權限,您可以終止所有線程和語句。否則,您只能查看和終止您自己的線程和語句。您也可以使用mysqladmin processlist和mysqladmin kill命令來檢查和終止線程。

首先登錄MySQL,然后使用: show processlist; 查看當前mysql中各個線程狀態(tài)。


mysql> show processlist; 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
  Id    User   Host           db         Command   Time   State     Info 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
  7028   root   ucap-devgroup:53396   platform      Sleep    19553          NULL  
  8352   root   ucap-devgroup:54794   platform      Sleep    4245          NULL 
  8353   root   ucap-devgroup:54795   platform      Sleep      3          NULL 
  8358   root   ucap-devgroup:62605   platform      query    4156   updating   update t_shop set  

以上顯示出當前正在執(zhí)行的sql語句列表,找到消耗資源最大的那條語句對應的id.

然后運行kill命令,命令格式如下:


kill id; 
- 示例: 
kill 8358

殺掉即可。

以上就是Mysql中關于使用kill命令解決死鎖問題詳解的詳細內容,更多請關注php中文網(wǎng)其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。