MySQL查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係
標題: MySQL 查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係
作者:lōττéry©版權所有[文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任.]
#mysql 鎖之間的依賴關係資訊sql如下【開啟註釋部分的sql是查詢最源頭鎖的thread_id執行緒id及關係】
SELECT distinct b.trx_id blocking_trx_id,
b.trx_mysql_thread_id 源頭鎖thread_id,
SUBSTRING(p. HOST, 1, INSTR(p. HOST, `:`) – 1) blocking_host,
SUBSTRING(p. HOST, INSTR(p. HOST, `:`) + 1) blocking_port,
IF(p.COMMAND = `Sleep`, p.TIME, 0) idel_in_trx,
b.trx_query blocking_query,
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) wait_time,
r.trx_query waiting_query,
l.lock_table waiting_table_lock
FROM information_schema.INNODB_LOCKS l
LEFT JOIN information_schema.INNODB_LOCK_WAITS w
ON w.requested_lock_id = l.lock_id
LEFT JOIN information_schema.INNODB_TRX b
ON b.trx_id = w.blocking_trx_id
LEFT JOIN information_schema.INNODB_TRX r
ON r.trx_id = w.requesting_trx_id
LEFT JOIN information_schema. PROCESSLIST p
ON p.ID = b.trx_mysql_thread_id
/*JOIN (SELECT blocking_trx_id — 查詢最源頭的trx_id
FROM information_schema.INNODB_LOCK_WAITS ilw
WHERE blocking_trx_id NOT IN
(SELECT requesting_trx_id
FROM information_schema.INNODB_LOCK_WAITS)) c
ON c.blocking_trx_id = b.trx_id */
ORDER BY wait_time DESC;
b.trx_mysql_thread_id 源頭鎖thread_id,
SUBSTRING(p. HOST, 1, INSTR(p. HOST, `:`) – 1) blocking_host,
SUBSTRING(p. HOST, INSTR(p. HOST, `:`) + 1) blocking_port,
IF(p.COMMAND = `Sleep`, p.TIME, 0) idel_in_trx,
b.trx_query blocking_query,
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) wait_time,
r.trx_query waiting_query,
l.lock_table waiting_table_lock
FROM information_schema.INNODB_LOCKS l
LEFT JOIN information_schema.INNODB_LOCK_WAITS w
ON w.requested_lock_id = l.lock_id
LEFT JOIN information_schema.INNODB_TRX b
ON b.trx_id = w.blocking_trx_id
LEFT JOIN information_schema.INNODB_TRX r
ON r.trx_id = w.requesting_trx_id
LEFT JOIN information_schema. PROCESSLIST p
ON p.ID = b.trx_mysql_thread_id
/*JOIN (SELECT blocking_trx_id — 查詢最源頭的trx_id
FROM information_schema.INNODB_LOCK_WAITS ilw
WHERE blocking_trx_id NOT IN
(SELECT requesting_trx_id
FROM information_schema.INNODB_LOCK_WAITS)) c
ON c.blocking_trx_id = b.trx_id */
ORDER BY wait_time DESC;
關聯物件的介紹:
— innodb_locks ## 當前出現的鎖
mysql > desc innodb_locks;
+————-+———————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————-+———————+——+—–+———+——-+
| lock_id | varchar(81) | NO | | | |#鎖ID
| lock_trx_id | varchar(18) | NO | | | |#擁有鎖的事務ID
| lock_mode | varchar(32) | NO | | | |#鎖模式
| lock_type | varchar(32) | NO | | | |#鎖型別
| lock_table | varchar(1024) | NO | | | |#被鎖的表
| lock_index | varchar(1024) | YES | | NULL | |#被鎖的索引
| lock_space | bigint(21) unsigned | YES | | NULL | |#被鎖的表空間號
| lock_page | bigint(21) unsigned | YES | | NULL | |#被鎖的頁號
| lock_rec | bigint(21) unsigned | YES | | NULL | |#被鎖的記錄號
| lock_data | varchar(8192) | YES | | NULL | |#被鎖的資料
+————-+———————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————-+———————+——+—–+———+——-+
| lock_id | varchar(81) | NO | | | |#鎖ID
| lock_trx_id | varchar(18) | NO | | | |#擁有鎖的事務ID
| lock_mode | varchar(32) | NO | | | |#鎖模式
| lock_type | varchar(32) | NO | | | |#鎖型別
| lock_table | varchar(1024) | NO | | | |#被鎖的表
| lock_index | varchar(1024) | YES | | NULL | |#被鎖的索引
| lock_space | bigint(21) unsigned | YES | | NULL | |#被鎖的表空間號
| lock_page | bigint(21) unsigned | YES | | NULL | |#被鎖的頁號
| lock_rec | bigint(21) unsigned | YES | | NULL | |#被鎖的記錄號
| lock_data | varchar(8192) | YES | | NULL | |#被鎖的資料
+————-+———————+——+—–+———+——-+
mysql>
— innodb_lock_waits ## 鎖等待的對應關
mysql > desc innodb_lock_waits;
+——————-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——————-+————-+——+—–+———+——-+
| requesting_trx_id | varchar(18) | NO | | | |#請求鎖的事務ID
| requested_lock_id | varchar(81) | NO | | | |#請求鎖的鎖ID
| blocking_trx_id | varchar(18) | NO | | | |#當前擁有鎖的事務ID
| blocking_lock_id | varchar(81) | NO | | | |#當前擁有鎖的鎖ID
+——————-+————-+——+—–+———+——-+
mysql>
+——————-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——————-+————-+——+—–+———+——-+
| requesting_trx_id | varchar(18) | NO | | | |#請求鎖的事務ID
| requested_lock_id | varchar(81) | NO | | | |#請求鎖的鎖ID
| blocking_trx_id | varchar(18) | NO | | | |#當前擁有鎖的事務ID
| blocking_lock_id | varchar(81) | NO | | | |#當前擁有鎖的鎖ID
+——————-+————-+——+—–+———+——-+
mysql>
— innodb_trx ## 當前執行的所有事務
> desc innodb_trx ;
+—————————-+———————+——+—–+———————+——-+
| Field | Type | Null | Key | Default | Extra |
+—————————-+———————+——+—–+———————+——-+
| trx_id | varchar(18) | NO | | | |#事務ID
| trx_state | varchar(13) | NO | | | |#事務狀態:
| trx_started | datetime | NO | | 0000-00-00 00:00:00 | |#事務開始時間;
| trx_requested_lock_id | varchar(81) | YES | | NULL | |#innodINNODB_TRXb_locks.lock_id
+—————————-+———————+——+—–+———————+——-+
| Field | Type | Null | Key | Default | Extra |
+—————————-+———————+——+—–+———————+——-+
| trx_id | varchar(18) | NO | | | |#事務ID
| trx_state | varchar(13) | NO | | | |#事務狀態:
| trx_started | datetime | NO | | 0000-00-00 00:00:00 | |#事務開始時間;
| trx_requested_lock_id | varchar(81) | YES | | NULL | |#innodINNODB_TRXb_locks.lock_id
| trx_wait_started | datetime | YES | | NULL | |#事務開始等待的時間
| trx_weight | bigint(21) unsigned | NO | | 0 | |#
| trx_mysql_thread_id | bigint(21) unsigned | NO | | 0 | |#事務執行緒ID
| trx_query | varchar(1024) | YES | | NULL | |#具體SQL語句
| trx_operation_state | varchar(64) | YES | | NULL | |#事務當前操作狀態
| trx_tables_in_use | bigint(21) unsigned | NO | | 0 | |#事務中有多少個表被使用
| trx_tables_locked | bigint(21) unsigned | NO | | 0 | |#事務擁有多少個鎖
| trx_lock_structs | bigint(21) unsigned | NO | | 0 | |#
| trx_lock_memory_bytes | bigint(21) unsigned | NO | | 0 | |#事務鎖住的記憶體大小(B)
| trx_rows_locked | bigint(21) unsigned | NO | | 0 | |#事務鎖住的行數
| trx_rows_modified | bigint(21) unsigned | NO | | 0 | |#事務更改的行數
| trx_concurrency_tickets | bigint(21) unsigned | NO | | 0 | |#事務併發票數
| trx_isolation_level | varchar(16) | NO | | | |#事務隔離級別
| trx_unique_checks | int(1) | NO | | 0 | |#是否唯一性檢查
| trx_foreign_key_checks | int(1) | NO | | 0 | |#是否外來鍵檢查
| trx_last_foreign_key_error | varchar(256) | YES | | NULL | |#最後的外來鍵錯誤
| trx_adaptive_hash_latched | int(1) | NO | | 0 | |#
| trx_adaptive_hash_timeout | bigint(21) unsigned | NO | | 0 | |#
+—————————-+———————+——+—–+———————+——-+
| trx_weight | bigint(21) unsigned | NO | | 0 | |#
| trx_mysql_thread_id | bigint(21) unsigned | NO | | 0 | |#事務執行緒ID
| trx_query | varchar(1024) | YES | | NULL | |#具體SQL語句
| trx_operation_state | varchar(64) | YES | | NULL | |#事務當前操作狀態
| trx_tables_in_use | bigint(21) unsigned | NO | | 0 | |#事務中有多少個表被使用
| trx_tables_locked | bigint(21) unsigned | NO | | 0 | |#事務擁有多少個鎖
| trx_lock_structs | bigint(21) unsigned | NO | | 0 | |#
| trx_lock_memory_bytes | bigint(21) unsigned | NO | | 0 | |#事務鎖住的記憶體大小(B)
| trx_rows_locked | bigint(21) unsigned | NO | | 0 | |#事務鎖住的行數
| trx_rows_modified | bigint(21) unsigned | NO | | 0 | |#事務更改的行數
| trx_concurrency_tickets | bigint(21) unsigned | NO | | 0 | |#事務併發票數
| trx_isolation_level | varchar(16) | NO | | | |#事務隔離級別
| trx_unique_checks | int(1) | NO | | 0 | |#是否唯一性檢查
| trx_foreign_key_checks | int(1) | NO | | 0 | |#是否外來鍵檢查
| trx_last_foreign_key_error | varchar(256) | YES | | NULL | |#最後的外來鍵錯誤
| trx_adaptive_hash_latched | int(1) | NO | | 0 | |#
| trx_adaptive_hash_timeout | bigint(21) unsigned | NO | | 0 | |#
+—————————-+———————+——+—–+———————+——-+
mysql>
擴充套件:
【源於本人筆記】 若有書寫錯誤,表達錯誤,請指正…
相關文章
- MySQL 查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係MySqlthread
- Oracle 查詢鎖之間依賴關係的最源頭SIDOracle
- Oracle 查詢鎖之間的依賴關係Oracle
- 關聯關係與依賴關係的區別
- 查詢依賴關係的objects 是否有被DDL過Object
- .NET Core新增專案之間的依賴關係
- mysql主外來鍵依賴關係MySql
- Maven 依賴關係Maven
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- 鎖表的相關資訊查詢
- build task依賴關係UI
- 黑客和開源革命之間的關係黑客
- Makefile 自動生成標頭檔案的依賴關係
- gcc 標頭檔案依賴關係 分析工具GC
- Gradle的Task(2)任務間的依賴關係Gradle
- ORACLE查詢表之間的主外來鍵關係Oracle
- oracle查詢並殺掉鎖表及物件的session及相關係統程式Oracle物件Session
- OSGI中的service依賴關係管理
- java的類之間的關係:泛化、依賴、關聯、實現、聚合、組合Java
- tablespace和datafile之間的關係
- 【物件導向依賴關係概念總結】物件導向程式設計的五種依賴關係物件程式設計
- MySQL InnoDB中的事務隔離級別和鎖的關係MySql
- Android專案的依賴關係解析Android
- 分析資料庫的依賴關係(轉)資料庫
- Spring框架模組依賴關係Spring框架
- depmod解決模組依賴關係
- Gil全域性解釋鎖和執行緒互斥鎖的關係執行緒
- 類之間的關係
- Oracle 查詢表與表之間的 主外來鍵關係Oracle
- 物件導向程式設計程式碼詳解(依賴關係,關聯關係,組合關係)物件程式設計
- Window, WindowManager和WindowManagerService之間的關係
- 【python】【安裝包依賴關係】Python
- 解決rpm包依賴關係
- [鎖機制] 鎖相關查詢
- 殺會話之查詢鎖表的物件及相關操作會話物件
- 【java】類之間的關係Java
- ORACLE包和過程依賴關係測試(轉)Oracle
- MySQL鎖表相關問題查詢思路MySql