查詢(xún)mysql哪些表正在被鎖狀態(tài)?
1.查看表是否被鎖:
(1)直接在mysql命令行執(zhí)行:show engine innodb statusG。
(2)查看造成死鎖的sql語(yǔ)句,分析索引情況,然后優(yōu)化sql。
(3)然后show processlist,查看造成死鎖占用時(shí)間長(zhǎng)的sql語(yǔ)句。
(4)show status like ‘%lock%。 2.查看表被鎖狀態(tài)和結(jié)束死鎖步驟:
(1)查看表被鎖狀態(tài):show OPEN TABLES where In_use > 0; 這個(gè)語(yǔ)句記錄當(dāng)前鎖表狀態(tài) 。
(2)查詢(xún)進(jìn)程:show processlist查詢(xún)表被鎖進(jìn)程;查詢(xún)到相應(yīng)進(jìn)程killid。
(3)分析鎖表的SQL:分析相應(yīng)SQL,給表加索引,常用字段加索引,表關(guān)聯(lián)字段加索引。
(4)查看正在鎖的事物:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS。
(5)查看等待鎖的事物:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS。