色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql5.7如何查看死鎖

錢淋西2年前10瀏覽0評論

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系統的正常運行。