1. 程式人生 > >MySql 查詢死鎖

MySql 查詢死鎖

MySql 查詢死鎖

專案週期中會遇到死鎖的問題,記錄一下如何檢視並定位。

方式一

  • 查詢是否鎖表
show OPEN TABLES where In_use > 0;
  • 查詢程序
show processlist
  • 幹掉鎖住執行緒(上面的ID)
kill thread_id

方式二

  • 檢視正被鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
  • 殺死程序id(就是上面命令的trx_mysql_thread_id列)
kill thread_id

其它命令

-- 檢視當前的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
-- 檢視當前鎖定的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
-- 檢視當前等鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;