MySQL查看是否鎖表

mysql查看是否鎖表的方法:首先進入命令窗口;然后通過執行命令“show engine innodb statusG;”查看造成死鎖的sql語句,并分析索引情況即可。

MySQL查看是否鎖表

可直接在mysql命令行執行:show engine innodb statusG;

查看造成死鎖的sql語句,分析索引情況,然后優化sql然后show processlist;

推薦課程:MySQL教程

mysql> show status like ‘table%’;

+----------------------------+----------+ | Variable_name        | Value | +----------------------------+----------+ | Table_locks_immediate | 105         | | Table_locks_waited   | 3           | +----------------------------+----------+

Table_locks_immediate??指的是能夠立即獲得表級鎖的次數

Table_locks_waited ?指的是不能立即獲取表級鎖而需要等待的次數

show OPEN TABLES where In_use > 0; 這個語句記錄當前鎖表狀態?

在my.ini配置文件的[mysqld]選項下增加:

slow_query_log=TRUE

slow_query_log_file=c:/slow_query_log.txt

long_query_time=3

添加完成之后記得一定要重啟mysql服務才能生效記錄輸出。微笑最后在MySQL客戶端中輸入命令:

show variables like ‘%quer%’; 核查一哈是否Ok

開啟mysql慢查詢日志

查看配置:

//查看慢查詢時間 show variables like "long_query_time";默認10s //查看慢查詢配置情況 show status like "%slow_queries%"; //查看慢查詢日志路徑  show variables like "%slow%"; -slow_query_log是否記錄慢查詢。用long_query_time變量的值來確定“慢查詢”。 -slow_query_log_file慢日志文件路徑 -long_query_time慢日志執行時長(秒),超過設定的時間才會記日志

言歸正傳,回到我們問題的出發點上Mysql 查詢表死鎖 和結束死鎖的表步驟

1、查詢是否鎖表 show OPEN TABLES where In_use > 0;

2、查詢進程

show processlist? ?查詢到相對應的進程===然后 kill? id

補充:

查看正在鎖的事務

select * FROM INFORMATION_SCHEMA.INNODB_LOCKS;?

查看等待鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;?

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享