在日常使用时,经常可能会遇到新增一个索引等很久,或者无法删除一个表等等。这种情况大概率是因为开启了事务导致锁表,无法执行。那么这个时候我们可以使用以下命令去查询并关闭事务
1、查询sql执行进程
SHOW FULL PROCESSLIST;
结果例:
| Id | User | Host | db | Command | Time | State | Info |
| 532231 | root | xxx | abc | Query | 0 | starting | SHOW FULL PROCESSLIST |
- ID是当前info中执行的sql进程号
- User是执行当前sql的用户
- Host是执行sql的电脑
- db是sql执行的所在数据库
- command是sql类型,上图Query指的是查询类型
- Time是sql执行的持续时间
- State是sql执行的状态
- Info是执行的具体sql
2、结束进程
以上面的sql进程号为例:
KILL 532231
3、或者使用另一条命令去查询正在执行的事务
SELECT * FROM information_schema.innodb_trx
这条命令可以查询到当前开启的事务
发表回复