查看表是否被锁:
直接在mysql命令行执行:
show engine innodb status\G。
查看造成死锁的sql语句,分析索引情况,然后优化sql.
然后show processlist,查看造成死锁占用时间长的sql语句。
show status like '%lock%'
查看表被锁状态和结束死锁步骤:
1.查看表被锁状态show OPEN TABLES where In_use > 0;
这个语句记录当前锁表状态
2.查询进程show processlist 查询表被锁进程
查询到相应进程kill id
3.分析锁表的SQL
分析相应SQL,给表加索引,常用字段加索引,表关联字段加索引
查看正在锁的事物:
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS.
查看等待锁的事物:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS.
本文介绍如何在MySQL中检查表锁定状态,包括使用show engine InnoDB statusG命令查看锁定详情,通过show processlist定位死锁SQL,以及利用INFORMATION_SCHEMA.INNODB_LOCKS和INFORMATION_SCHEMA.INNODB_LOCK_WAITS查询来分析正在锁定和等待锁定的事物。文章还提供了优化SQL和添加索引以防止死锁的建议。
1263

被折叠的 条评论
为什么被折叠?



