语法:
show open tables[ from | in db_name][ like 'parttern'| where 'expr']
show open tables 可以列出当前缓存中非临时表的打开状态。
示例:
mysql> show open tables where in_use>0;
+-----------------+------------+--------+-------------+
| Database | Table | In_use | Name_locked |
+-----------------+------------+--------+-------------+
| cloud_rbac_95pw | department | 3 | 0 |
| cloud_rbac_95pw | user | 2 | 0 |
+-----------------+------------+--------+-------------+
2 rows in set (0.03 sec)
字段含义:
Database 列表示库名
Table 表示表名
In_use 表示表上已有的锁,或者锁请求。假设有个语句LOCK TABLE t1 WRITE,那么In_use是1,如果再来一个LOCK TABLE t1 WRITE,那么这个语句会等待之前的事务释放锁,且In_use是2。如果In_use是0,表示表已经被打开了,但是没被使用。
Name_locked 表示是否锁住表名。删除表或者修改表名时会锁住。
注意:
如果没有表的权限,那么show open tables 将不会显示关于这个表的锁。
