在MySQL实战之死锁与解决方案 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)和MySQL中锁机制实现原理 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中对查看锁的信息都有部分应用。本文总结MySQL中查看各种锁的命令,具体如下:
1、show processlist
“show processlist;”显示哪些线程正在运行。如果有超级权限,那么就可以看到所有线程。如果有线程在update或者insert某个表,此时进程的“status”为updating或者sending data。“show processlist;”只列出前100条,如果想全列出那么可以使用“show full processlist;”。
一些常见的状态可参考如下:
2、show open tables
这条命令能够查看当期有哪些表是打开的。In_use列表示有都是线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在DROP或RENAME命令操作这张表时。所以,这条命令不能查询到当前某张表是否有死锁,谁拥有表上的这个锁等。常用的命令如下:
show open tables from db_name;
show open tables where in_use>0;
3、show engine innodb status\G;
这条命令可以查看innodb引擎的运行时信息,其中第一部分的信息就是状态:
4、查看服务器的状态:show status like '%lock%';
5、查询information_schema用户下的表
通过information_schema下的innodb_trx这张表可以更新监控当前事情,并且分析存在的锁问题。当前innodb内核中的当前活跃(ACTIVE)事务:select * from information_schema.innodb_trx;
其表结构如下:
标签:查看,show,哪些,命令,innodb,MySQL,线程 From: https://www.cnblogs.com/ilovebath/p/16718748.html