查看死锁位置,分析。
二、
首先解决死锁可以从死锁发生的条件入手,最容易解决的就是更改获取资源的顺序;
其次是避免长事务,让事务执行的时间尽可能少,让事务的覆盖范围尽可能小,长事务会导致并发度降低,且会有更多的SQL查 询延迟;
给整个方法加事务是否是必须的?可以不加事务的尽量不加。
第一步,查出已锁的进程
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS
``
查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS
``
INNODB_TRX表主要是包含了正在InnoDB引擎中执行的所有事务的信息,包括waiting for a lock和running的事务
select * from information_schema.innodb_trx
``
第二步,kill进程
show engin innodb status //最后一次死锁信息及sql
show open tables where in_use >0 //查看锁表
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)