mysql 查詢鎖 MySQL 鎖查詢

2021-10-20 22:29:04 字數 1668 閱讀 7312

一、從檢視檢視

檢視程序

show processlist;

// 檢視是否鎖表

show open tables where in_use > 0;

1、檢視當前的事務

select * from information_schema.innodb_trx;

2、檢視當前鎖定的事務

select * from information_schema.innodb_locks;

3、檢視當前等鎖的事務

select * from information_schema.innodb_lock_waits;

二、使用show檢視

1、查詢是否鎖表

show open tables where in_use > 0;

2、查詢程序(如果您有super許可權,您可以看到所有執行緒。否則,您只能看到您自己的執行緒)

show processlist ;

3、殺死程序id(就是上面命令的id列)

kill 462540518 ;

三、檢視指令碼

1、指令碼一

select

th.processlist_id,                                       -- 這個就是你要的 connection_id, 你可以 kill 這個,達到終止它的操作的目的

th.processlist_command as command,    -- 這個為 sleep,則表明操作結束了,但沒有提交事務,也就是事務掛起了

timestampdiff(second, trx.trx_started, now()) as tx_duration, -- 事務已經開啟多長時間了

esc.current_schema, esc.sql_text          -- 這個不一定能查到,最後執行的 sql(事務中有多個語句時,這個只是最後乙個,江代表是產生鎖的那個)

from performance_schema.threads th

inner join information_schema.innodb_trx trx

on trx.trx_mysql_thread_id = th.processlist_id

left join performance_schema.events_statements_current esc

on esc.thread_id = th.thread_id;

2、指令碼二

select r.trx_id waiting_trx_id,r.trx_mysql_thread_id waiting_thread,

r.trx_query waiting_query,b.trx_id blocking_trx_id,

b.trx_mysql_thread_id blocking_thread,b.trx_query blocking_query

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\g

mysql子查詢鎖

session 1 mysql begin query ok,0 rows affected 0.00 sec mysql update a set name select name from bai where a.id bai.id where id 1 query ok,0 rows affe...

mysql會話鎖 Mysql鎖機制 寫鎖

1 準備資料 1.1 建表 1.1.1 建立 employee表 drop table if existsemployee create table if not existsemployee idint primary keyauto increment,namevarchar 40 dept i...

mysql鎖機制 mysql 鎖機制

一 概述 mysql有三種鎖的級別 頁級 表級 行級。myisam和memory儲存引擎採用的是表級鎖 table level locking bdb儲存引擎採用的是頁面鎖 page level locking 但也支援表級鎖 innodb儲存引擎既支援行級鎖 row level locking 也...