自己原文公众号: https://mp.weixin.qq.com/s/Vo4Fo3mfmifnxWOl3WYx5w
死锁可大可小。有的深邃的问题是需要功力的,但是我们大多数人遇到的都是简单的。我今天这里谈谈简单的,因为我发现简单的上大家还有点不清楚。
死锁一定要2个会话以上才行(含两个会话)。倒不一定要2个表或者多个表。一个表也能造成死锁。
红色的代表步骤顺序。我这里演示是2个表
A会话做id2的更新,然后B做ID1的更新;
然后A做ID1的更新,然后B做id2的更新。
我这里特意写了大小写的ID,只要大写的ID是一行记录,小写的id是一行记录就行。至于是不是一张表无所谓。

如何避免?
1、不要交叉,比如大家都按照一定的顺序操作表。不要一个是AB 另外一个是BA。如果表多了ABCDEFG,那就更加复杂了。这个是根本。
2、执行的足够快。再下一个会话事务开始前已经执行完毕了。这个是王道。
