##主要危害:锁无法释放

##1. 行级锁长时间无法释放

#####解决方法

调整的时候我们也要注意,如果短的话可能就会造成大量的事务失败,如果长的话也是同样的道理会有很多事务等待,所以适当的调整为好。

##2. 死锁问题

#####解决方法

实例:

可以看到正是因为mysql开起了死锁检测,所以如果如图发生了死锁,那么回滚代价较小的事务会进行回滚。所以我们才看到图中直接就失败了。

死锁检测看起来是个不错的功能,但是如果遇到事务非常多的情况下就会造成数据库的性能问题,因为事务很多所以就有很多锁,那么我们很多事务都需要死锁检测就会频繁的死锁监测了

遇上上述的情况下,sql运行很缓慢就可能是这个原因,解决方式就是关掉这个死锁检测,同时适当的调低锁等待时间,然后继续优化长事务这几个方法。