如何查看是否发生死锁
在使用mysql的时候,如何查看表是否被锁呢?
查看表被锁状态和结束死锁步骤:
1.在mysql命令行执行sql语句
use dbName; // 切换到具体数据库
show engine innodb status; // 查询db是否发生死锁
2.查看数据表被锁状态
show OPEN TABLES where In_use > 0;
该语句可以查询到当前锁表的状态
3.分析锁表的SQL
通过sql日志,分析相应SQL,给表加索引,常用字段加索引,表关联字段加索引等方式对sql进行优化。
4.查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
在5.5中,information_schema 库中增加了三个关于锁的表(innoDB引擎):
innodb_trx ## 当前运行的所有事务
innodb_locks ## 当前出现的锁
innodb_lock_waits ## 锁等待的对应关系
先来看一下这三张表结构:
ro
相关文章
暂无评论...