在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql如何产生死锁的

124次阅读
没有评论

共计 1508 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 mysql 如何产生死锁的,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql 中死锁 DeadLock:是指两个或两个以上的进程在执行过程中, 因争夺资源而造成的一种互相等待的现象, 若无外力作用,它们都将无法推进下去. 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。表级锁不会产生死锁. 所以解决死锁主要还是针对于最常用的 InnoDB。

死锁的关键在于:两个 (或以上) 的 Session 加锁的顺序不一致。

那么对应的解决死锁问题的关键就是:让不同的 session 加锁有次序

案例

需求:将投资的钱拆成几份随机分配给借款人。

起初业务程序思路是这样的:

投资人投资后,将金额随机分为几份,然后随机从借款人表里面选几个,然后通过一条条 select for update 去更新借款人表里面的余额等。

例如两个用户同时投资,A 用户金额随机分为 2 份,分给借款人 1,2

B 用户金额随机分为 2 份,分给借款人 2,1

由于加锁的顺序不一样,死锁当然很快就出现了。

对于这个问题的改进很简单,直接把所有分配到的借款人直接一次锁住就行了。

Select * from xxx where id in (xx,xx,xx) for update

在 in 里面的列表值 mysql 是会自动从小到大排序,加锁也是一条条从小到大加的锁

  例如(以下会话 id 为主键): 
Session1:
 
mysql  select * from t3 where id in (8,9) for update;
+----+--------+------+---------------------+
| id | course | name | ctime |
+----+--------+------+---------------------+
| 8 | WA | f | 2016-03-02 11:36:30 |
| 9 | JX | f | 2016-03-01 11:36:30 |
+----+--------+------+---------------------+
rows in set (0.04 sec)
 
 
Session2:
select * from t3 where id in (10,8,5) for update;
锁等待中……
 
其实这个时候 id=10 这条记录没有被锁住的,但 id= 5 的记录已经被锁住了,锁的等待在 id= 8 的这里
 
Session3:
mysql  select * from t3 where id=5 for update;
 
 
Session4:
mysql  select * from t3 where id=10 for update;
+----+--------+------+---------------------+
| id | course | name | ctime |
+----+--------+------+---------------------+
| 10 | JB | g | 2016-03-10 11:45:05 |
+----+--------+------+---------------------+
row in set (0.00 sec)
 
 
在其它 session 中 id= 5 是加不了锁的,但是 id=10 是可以加上锁的。

关于 mysql 如何产生死锁的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1508字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 又大又硬又爽免费视频 | 亚洲成人高清在线观看 | 亚洲欧美日韩综合在线 | 久久国产午夜精品理论篇小说 | 久久精品国产亚洲7777 | 亚洲人成网77777色在线播放 | 日韩高清特级特黄毛片 | 欧美综合自拍亚洲综合图 | 亚洲av日韩综合一区在线观看 | 成人满18在线观看网站免费 | 深夜视频在线播放深夜福利 | 天天色综合1 | 又粗又黄又爽视频免费看 | 欧美黑人疯狂性受xxxxx喷水 | 中文字幕无码乱码人妻系列蜜桃 | 人妻丰满熟妇av无码区乱 | 亚洲熟妇自偷自拍另欧美 | 国产精品在线观看 | 成年女人免费视频播放77777 | 久久精品www| 亚洲精品久久99久久一 | 久久福利电影网 | 婷婷综合 在线 | 国产一级特黄一级毛片 | 日本黄色性视频 | 99精品视频在线免费观看 | 亚洲激情综合在线 | 成年男女男精品免费视频网站 | 玩弄丰满奶水的女邻居 | 香蕉视频在线精品 | 国产无遮挡色视频免费视频 | 亚洲一区二区三区在线网站 | 四虎影院在线 | 自拍 欧美 在线 综合 另类 | 国模福利在线观看视频 | 精品国产一区二区三区av性色 | 日韩免费视频一区二区 | 青青草在线免费 | 高清亚洲综合色成在线播放放 | 爱爱客影院在线影院gf发现 | 中文亚洲日韩欧美 |