1. 程式人生 > 其它 >mysql執行緒程序相關查詢

mysql執行緒程序相關查詢

技術標籤:大資料學習JAVA學習sqlmysql

mysql 執行緒程序相關查詢


1:顯示哪些執行緒正在執行

show full processlistt;

show processlist;

執行結果如下:

說明:
id #ID標識,要kill一個語句的時候很有用
use #當前連線使用者
host #顯示這個連線從哪個ip的哪個埠上發出
db #資料庫名
command #連線狀態,一般是休眠(sleep),查詢(query),連線(connect)
time #連線持續時間,單位是秒
state #顯示當前sql語句的狀態
info #顯示這個sql語句

如果需要結束程序可以使用 kill + id 命令

2:檢視當前執行的所有事務

SELECT * FROM information_schema.INNODB_TRX

在執行結果中可以看到是否有表鎖等待或者死鎖,如果有死鎖發生,可以通過下面的命令來殺掉當前執行的事務:

KILL34805388 ;

KILL 後面的數字指的是trx_mysql_thread_id值。

3:檢視當前出現的鎖;

SELECT * FROM information_schema.INNODB_LOCKs;

lock_id:鎖 ID。
lock_trx_id:擁有鎖的事務 ID。可以和 INNODB_TRX 表 JOIN 得到事務的詳細資訊。

lock_mode:鎖的模式。有如下鎖型別:行級鎖包括:S、X、IS、IX,分別代表:共享鎖、排它鎖、意向共享鎖、意向排它鎖。表級鎖包括:S_GAP、X_GAP、IS_GAP、IX_GAP 和 AUTO_INC,分別代表共享間隙鎖、排它間隙鎖、意向共享間隙鎖、意向排它間隙鎖和自動遞增鎖。
lock_type:鎖的型別。RECORD 代表行級鎖,TABLE 代表表級鎖。
lock_table:被鎖定的或者包含鎖定記錄的表的名稱。
lock_index:當 LOCK_TYPE=’RECORD’ 時,表示索引的名稱;否則為 NULL。
lock_space:當 LOCK_TYPE=’RECORD’ 時,表示鎖定行的表空間 ID;否則為 NULL。
lock_page:當 LOCK_TYPE=’RECORD’ 時,表示鎖定行的頁號;否則為 NULL。
lock_rec:當 LOCK_TYPE=’RECORD’ 時,表示一堆頁面中鎖定行的數量,亦即被鎖定的記錄號;否則為 NULL。
lock_data:當 LOCK_TYPE=’RECORD’ 時,表示鎖定行的主鍵;否則為NULL。

4:檢視鎖等待的對應關係;

SELECT * FROM information_schema.INNODB_LOCK_waits;

requesting_trx_id:請求事務的 ID。
requested_lock_id:事務所等待的鎖定的 ID。可以和 INNODB_LOCKS 表 JOIN。
blocking_trx_id:阻塞事務的 ID。
blocking_lock_id:某一事務的鎖的 ID,該事務阻塞了另一事務的執行。可以和 INNODB_LOCKS 表 JOIN。