执行增删改操作没有commit,再执行删除操作就会锁表。
在同一事务内先后对同一条数据进行插入和更新操作。
表索引设计不当,导致数据库出现死锁。
长事务,阻塞DDL,继而阻塞所有同表的后续操作。
但是要区分的是Lock wait timeout exceeded与Dead Lock是不一样。
Lock wait timeout exceeded:后提交的事务等待前面处理的事务释放锁,但是在等待的时候超过了mysql的锁等待时间,就会引发这个异常。
Dead Lock:两个事务互相等待对方释放相同资源的锁,从而造成的死循环,就会引发这个异常。