information_shcema下的三張表(通過這三張表可以更新監控當前事物並且分析存在的鎖問題)
—— innodb_trx (列印innodb核心中的當前活躍事務)
—— innodb_locks ( 列印當前狀態產生的innodb鎖僅在有鎖等待時列印)
—— innodb_lock_waits(列印當前狀態產生的innodb鎖等待僅在有鎖等待時列印)
1) innodb_trx表結構說明 (摘取最能說明問題的8個字段)
欄位名說明
trx_idinnodb儲存引擎內部唯一的事物id
trx_state當前事物狀態(running和lock wait兩種狀態)
trx_started事物的開始時間
trx_requested_lock_id等待事物的鎖id,如trx_state的狀態為lock wait,那麼該值帶表當前事物等待之前事物占用資源的id,若trx_state不是lock wait 則該值為null
trx_wait_started事物等待的開始時間
trx_weight事物的權重,在innodb儲存引擎中,當發生死鎖需要回滾的時,innodb儲存引擎會選擇該值最小的進行回滾
trx_mysql_thread_idmysql中的執行緒id, 即show processlist顯示的結果
trx_query事物執行的sql語句
2)innodb_locks表結構說明
欄位名說明
lock_id鎖的id
lock_trx_id事物的id
lock_mode鎖的模式(s鎖與x鎖兩種模式)
lock_type鎖的型別 表鎖還是行鎖(record)
lock_table要加鎖的表
lock_index鎖住的索引
lock_space鎖住物件的space id
lock_page事物鎖定頁的數量,若是表鎖則該值為null
lock_rec事物鎖定行的數量,若是表鎖則該值為null
lock_data事物鎖定記錄主鍵值,若是表鎖則該值為null(此選項不可信)
3)innodb_lock_waits表結構說明
欄位名說明
requesting_trx_id申請鎖資源的事物id
requested_lock_id申請的鎖的id
blocking_trx_id阻塞其他事物的事物id
blocking_lock_id阻塞其他鎖的鎖id
mysql檢視 MySQL檢視當前資料庫庫
mysql檢視當前資料庫庫 1 在mysql下檢視當前使用的是哪個資料庫,有三種方式 用select database 語句 mysql select database database test row in set 0.00 sec 從查詢結果中可以看出,當前用的是test資料庫 2 用show...
檢視當前資料庫情況
正在執行的 select a.username,a.sid,b.sql text,b.sql fulltext from v session a,v sqlarea b where a.sql address b.address 執行過的 select b.sql text,b.first load...
檢視oracle資料庫鎖
方法一 檢視產生鎖的程序id 在資料庫伺服器上 主機 如應用伺服器 等等 select s.machine sourse host,p.spid pid,l.session id sid,s.serial l.locked mode,l.oracle username,s.user l.os use...