mysql如何产生死锁的
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关mysql如何产生死锁的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中死锁:是指两个或两个以上的进程在执行过程中,因争夺资源
千家信息网最后更新 2026年11月01日mysql如何产生死锁的
这篇文章将为大家详细讲解有关mysql如何产生死锁的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
mysql中死锁
死锁的关键在于:两个(或以上)的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如何产生死锁的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
死锁
借款人
两个
投资
用户
进程
金额
从小到大
从小
关键
更多
条条
篇文章
系统
问题
顺序
分配
不同
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州百单互联网科技有限公司
猪兼强互联网科技
润盈互联网科技
镁科技互联网资讯平台
青岛中康互联网医疗科技有限公司
互联网之后的科技是什么
创业天下互联网科技有限公司
互联网科技有哪些公司
深圳育鹏互联网科技有限公司招聘
四川慕妮娅互联网科技有限公司
中科明德北京互联网科技
合肥互联网科技公司公章图片
互联网金融科技元年
21世纪互联网科技成就
新氧科技和美国互联网有关系吗
珠海东科互联网科技有限公司
互联网科技博主张洲
恒生科技指数 中概互联网
平安好医生打造互联网科技医疗
知域互联网科技有限公司官网
保险科技 互联网保险
湖南永感互联网科技有限公司
哈尔滨新华互联网科技学院
互联网对科技的发展
辽宁互联网新科技
米聚互联网科技南京有限公司排面
全球科技与互联网公司市值变化
互联网科技职业技能培训学校
现代互联网科技公司
承德科技产业互联网平台