时间:2024-10-09 18:02:01
查询mysql 表锁的sql
在MySQL中,可以通过以下SQL语句来查看表锁情况:
1. 查看当前有无锁等待:`show status like 'innodb_row_lock%';`
2. 查看哪个事务在等待(被阻塞了):`select * from information_schema.INNODB_TRX WHERE trx_state='LOCK WAIT';`
3. 查询该事务被哪个事务给阻塞了:`SELECT * FROM performance_schema.threads WHERE processlist_id=970;`
4. 根据trx_id,从innodb_trx表可查询到trx_mysql_thread_id线程id为970:`select * from information_schema.innodb_trx where trx_id=3933;`
5. 根据线程id,查询表拿到thread_id为995:`SELECT * FROM performance_schema.threads WHERE processlist_id=970;`
6. 根据thread_id,查询当前锁源的sql:`SELECT * FROM performance_schema.events_statements_current WHERE thread_id=995;`
另外,还可以查看正在执行的线程信息:`show full processlist;` 。
科技之家 广州小漏斗信息技术有限公司 版权所有 提供支持 粤ICP备20006251号