mysql 查詢阻塞

2021-09-24 00:02:24 字數 1757 閱讀 4579

select 

p2.`host` 被阻塞方host,

p2.`user` 被阻塞方使用者,

r.trx_id 被阻塞方事務id,

r.trx_mysql_thread_id 被阻塞方執行緒號,

timestampdiff(

second,

r.trx_wait_started,

current_timestamp

) 等待時間,

r.trx_query 被阻塞的查詢,

l.lock_table 阻塞方鎖住的表,

m.`lock_mode` 被阻塞方的鎖模式,

m.`lock_type` "被阻塞方的鎖型別(表鎖還是行鎖)",

m.`lock_index` 被阻塞方鎖住的索引,

m.`lock_space` 被阻塞方鎖物件的space_id,

m.lock_page 被阻塞方事務鎖定頁的數量,

m.lock_rec 被阻塞方事務鎖定行的數量,

m.lock_data 被阻塞方事務鎖定記錄的主鍵值,

p.`host` 阻塞方主機,

p.`user` 阻塞方使用者,

b.trx_id 阻塞方事務id,

b.trx_mysql_thread_id 阻塞方執行緒號,

b.trx_query 阻塞方查詢,

l.`lock_mode` 阻塞方的鎖模式,

l.`lock_type` "阻塞方的鎖型別(表鎖還是行鎖)",

l.`lock_index` 阻塞方鎖住的索引,

l.`lock_space` 阻塞方鎖物件的space_id,

l.lock_page 阻塞方事務鎖定頁的數量,

l.lock_rec 阻塞方事務鎖定行的數量,

l.lock_data 阻塞方事務鎖定記錄的主鍵值,

if (

p.command = 'sleep',

concat(p.time, ' 秒'),

0) 阻塞方事務空閒的時間

from

information_schema.innodb_lock_waits w

inner join information_schema.innodb_trx b

on b.trx_id = w.blocking_trx_id

inner join information_schema.innodb_trx r

on r.trx_id = w.requesting_trx_id

inner join information_schema.innodb_locks l

on w.blocking_lock_id = l.lock_id

and l.`lock_trx_id` = b.`trx_id`

inner join information_schema.innodb_locks m

on m.`lock_id` = w.`requested_lock_id`

and m.`lock_trx_id` = r.`trx_id`

inner join information_schema.processlist p

on p.id = b.trx_mysql_thread_id

inner join information_schema.processlist p2

on p2.id = r.trx_mysql_thread_id

order by 等待時間 desc ;

mysql語句阻塞 Mysql查詢阻塞的sql

select p2.host 被阻塞方host,p2.user 被阻塞方使用者,r.trx id 被阻塞方事務id,r.trx mysql thread id 被阻塞方執行緒號,timestampdiff second,r.trx wait started,current timestamp 等待時...

MySQL查詢何時會被阻塞

由於沒有拿到mdl讀鎖 可以通過show processlist命令檢視執行緒狀態為 waiting for table metadata lock,這時需要找到鎖住這個表的執行緒,通過select blocking pid from sys.schema table lock waits,然後ki...

sql server 阻塞查詢

原文 sql server 阻塞查詢 在生產環境下,有時公司客服反映網頁半天打不到,除了在瀏覽器按f12的network響應來排查,確定web伺服器無故障後。就需要檢查資料庫是否有出現阻塞 當時資料庫的生產環境中主表資料量超過2000w,子表資料量超過1億,且更新和新增頻繁。再加上做了同步映象,很消...