mysql查詢鎖表的實現方法
今天在做數據更新的時候,發(fā)現表中數據量不大,但是更新語句執(zhí)行很久都沒成功,經過查詢后發(fā)現是表鎖死導致的,本文記錄一下鎖表解決步驟:
1.查看表是否被鎖
(1)直接在mysql命令行執(zhí)行:show engine innodb status。
(2)查看造成死鎖的sql語句,分析索引情況,然后優(yōu)化sql。
(3)然后show processlist,查看造成死鎖占用時間長的sql語句。
(4)show status like '%lock%'。
2.查看表被鎖狀態(tài)和結束死鎖步驟
(1)查看表被鎖狀態(tài):
show OPEN TABLES where In_use > 0; 這個語句記錄當前鎖表狀態(tài) 。
(2)查詢進程:
show processlist查詢表被鎖進程;查詢到相應進程killid。
(3)分析鎖表的SQL:
分析相應SQL,給表加索引,常用字段加索引,表關聯字段加索引。
(4)查看正在鎖的事物:
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS。
(5)查看等待鎖的事物:
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS。
3.mysql查詢鎖表指令速查
1).查看當前鎖超時時間
show variables like 'innodb_lock_wait_timeout';
2).查看全局鎖超時時間
SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';
3).更改當前鎖超時時間為120秒
SET innodb_lock_wait_timeout=120;
4).更改全局鎖超時時間為120秒
SET GLOBAL innodb_lock_wait_timeout=120;
5).查看鎖情況
show full processlist;

6).殺死鎖的命令
KILL 具體的id
到此這篇關于mysql查詢鎖表的實現方法的文章就介紹到這了,更多相關mysql查詢鎖表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql數據庫詳解(基于ubuntu 14.0.4 LTS 64位)
這篇文章主要介紹了mysql數據庫詳解(基于ubuntu 14.0.4 LTS 64位),具有一定借鑒價值,需要的朋友可以參考下。2017-12-12

