ITPub博客

首页 > 数据库 > MySQL > MySQL的死锁

MySQL的死锁

原创 MySQL 作者:xuexiaogang 时间:2021-12-13 10:38:03 0 删除 编辑

自己原文公众号: 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、执行的足够快。再下一个会话事务开始前已经执行完毕了。这个是王道。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2847326/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: database的connect
请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953269