检察形成死锁的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;
以上就是MySQL检察是不是锁表的细致内容,更多请关注ki4网别的相干文章!