来了来了来了!客户现场又要骂街了,你们这是什么破系统怎么这么慢啊?!?!
今天遇到了mysql死锁,直接导致服务器CPU被PUA直接GUA了!
别的先别管,先看哪里死锁,或者哪里阻塞了。。。一定一定一定要先恢复现场使用,不然你会知道花儿为什么这样的红...
恢复使用后我们继续悠闲地排查吧。
1.查询是否锁表(肯定锁了一堆)
sql
show OPEN TABLES where In_use > 0;
2.查询进程(绷不住了)
sql
show processlist;
3.杀死进程id(上面命令所查数据的id)(-_-||一条一条杀吗?不不不!!这种情况直接重启服务器吧)
sql
kill id
4.查看正在锁的事务(几乎用不到)
sql
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
5.查看等待锁的事务(反正我没用)
sql
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
6.查看锁的类型和状态(看我都不看)
sql
show status like '%lock%';
再查询进程的时候info字段是相关的sql语句,最后把这个sql重写了才解决!这sql是谁是谁是谁写的我敲xxxxxxx。