美文网首页
MySQL死锁、资源竞争死锁

MySQL死锁、资源竞争死锁

作者: BenjaminCool | 来源:发表于2019-12-21 12:16 被阅读0次

什么是MySQL死锁:

image.png image.png

什么是资源竞争死锁:

比如连接池 ShardingSphere文档中写到关于 数据库连接的资源竞争问题

image.png image.png

如何避免死锁:

思路:

  • 1、 因为加锁而导致死锁, 所以放弃使用悲观锁方案, 改为乐观锁方案

  • 2、 如果不能用乐观锁,则用分布式锁,放宽锁的粒度, 用一个锁来保护单表或多表中的多行资源;缺点是: 只能尽可能的解决了死锁的问题, 不能完全解决死锁的问题, 因为业务接口众多,业务逻辑众多, 可能会导致不一致、死锁; 所以不建议用。

乐观锁: 通过添加一个version
更新一次version++

悲观锁处理幂等性的方法:
解决了幂等性一锁、二判、三更新的问题

乐观锁处理幂等性的方法:
1、 查询: 查询目标记录连带version字段一同返回
2、 判断: 判断是否需要更新、以及是否已经更新
3、 更新: 乐观锁更新,通过比较版本号实现比较

乐观锁幂等性更新示例:


image.png image.png image.png image.png

相关文章

  • MySQL死锁、资源竞争死锁

    什么是MySQL死锁: 什么是资源竞争死锁: 比如连接池 ShardingSphere文档中写到关于 数据库连接的...

  • 死锁的四个必要条件

    一. 什么是死锁? 二. 死锁产生的原因? 1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满...

  • 操作系统(二)进程管理 2.4 死锁

    2.4 死锁 2.4.1 死锁的概念 2.4.1.1 死锁的定义 在并发环境下,各进程因竞争资源而造成的一种互相等...

  • 死锁

    1.死锁原因 1)资源竞争 2)进程推进顺序非法(互相占有彼此需要的资源,同时请求对方占有的资源) 所谓死锁,通常...

  • [现代操作系统]--死锁

    table of content 死锁定义 死锁建模-- 资源分配图 处理死锁鸵鸟算法检测并恢复死锁检测死锁恢复利...

  • 死锁

    死锁 什么是死锁 死锁是指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。 ...

  • 死锁 & 银行家算法

    死锁是多线程环境中由于对资源竞争分配不合理而产生的阻塞行为,银行家算法是一种动态避免死锁的策略。 I、死锁 1.1...

  • 死锁理论知识补充

    目录 1.死锁的定义与例子2.死锁的原因3.破题 定义: 死锁的一个比较专业的定义是:一组互相竞争资源的线程因互相...

  • 死锁的条件,如何解决

    死锁的概念 1、死锁的概念:死锁是指两个或两个以上的进程或线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一...

  • 死锁

    上一篇列举了死锁的例子,就是两个线程互相竞争对方的资源,而又不释放自己的资源,导致互相死等。如下图所示: 死锁发生...

网友评论

      本文标题:MySQL死锁、资源竞争死锁

      本文链接:https://www.haomeiwen.com/subject/lafgnctx.html