Mysql删除数据时出现执行很慢并且删除失败的情况--线程堵塞

今天在执行一条sql语句时,之前这条sql语句用的好好的,今天执行很慢,到最后报1205的错,查看sql语句并没有错,百思不得其解,最后网上搜到是线程堵塞问题

DELETE FROM `wechat_user_r_department` WHERE `WECHAT_USER_ID`=1000

sql语句明明没错,报1205错误

解决办法:
数据库执行SQL语句 查询是哪个线程堵住了

SELECT * FROM information_schema.innodb_trx

查看trx_rows_locked 这一列 如果是大于0的话,说明是堵塞住了, 然后查对应的trx_mysql_thread_id 列
看到一个线程ID
然后执行SQL , kill 线程ID 即可(也就是kill trx_mysql_thread_id 对应的值)


上一篇:MySQL运维中长事务和锁等待排查


下一篇:mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决