MySQL是一個常用的關系型數據庫管理系統,如果系統存在死鎖,可能導致數據庫系統不可用,因此了解如何查看死鎖是非常重要的。
MySQL 5.7提供了一種查看死鎖的方法,這個方法可以幫助我們分析死鎖的原因,從而解決死鎖的問題。
下面是如何查看死鎖的步驟:
show engine innodb status\G;
在MySQL中執行以上命令,將會打印出一個關于InnoDB存儲引擎的狀態信息。 在這個狀態信息中,你將會找到一個稱為"TRANSACTION"的部分。 這是當前正在執行的事務和等待資源的事務列表。 其中,包含了一些關于死鎖的重要信息。
例如:
------------------------ LATEST DETECTED DEADLOCK ------------------------ 2019-08-28 07:45:50 7f23943dc700 *** (1) TRANSACTION: TRANSACTION 45305, ACTIVE 0 sec fetching rows mysql tables in use 1, locked 1 LOCK WAIT 6 lock struct(s), heap size 1136, 6 row lock(s), undo log entries 4 MySQL thread id 19, OS thread handle 140442732505344, query id 30466 localhost root updating UPDATE students SET score=score+1 WHERE id=1 *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 1 page no 3 n bits 72 index PRIMARY of table `test`.`students` trx id 45305 lock_mode X locks rec but not gap waiting Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0 0: len 8; hex 8000000000000001; asc ;; 1: len 6; hex 00000000b168; asc h;; 2: len 7; hex 85000000020110; asc ;; 3: len 4; hex 80000001; asc ;; 4: len 4; hex 00000001; asc ;; *** (2) TRANSACTION: TRANSACTION 45304, ACTIVE 0 sec inserting mysql tables in use 1, locked 1 6 lock struct(s), heap size 1136, 6 row lock(s), undo log entries 2 MySQL thread id 18, OS thread handle 140442723424000, query id 30463 localhost root update INSERT INTO students(id,score)VALUES(1,1)ON DUPLICATE KEY UPDATE score=score+1 *** (2) HOLDS THE LOCK(S): RECORD LOCKS space id 1 page no 3 n bits 72 index PRIMARY of table `test`.`students` trx id 45304 lock_mode X locks rec but not gap Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0 0: len 8; hex 8000000000000001; asc ;; 1: len 6; hex 00000000b168; asc h;; 2: len 7; hex 85000000020110; asc ;; 3: len 4; hex 80000001; asc ;; 4: len 4; hex 00000001; asc ;;
該日志記錄了最近一次檢測到的死鎖,其中記錄了死鎖事件發生的時間、死鎖涉及到的事務以及等待鎖的事務。對于上述例子,"TRANSACTION 45305"正在等待鎖,而"TRANSACTION 45304"當前持有鎖,這就產生了死鎖。
通過查看InnoDB狀態信息,我們可以更好地理解死鎖的原因,及時處理死鎖,保證MySQL系統的正常運行。
上一篇html5的居中怎么設置
下一篇option css高