关于mysql死锁(Deadlock)的两个详细经典案例

       写博客至今一年有余,感觉还没写出几篇比较有质量的文章,首先确实是自己有点懒,没有及时更新博客,但是还有一方面是有些笔记不适合分享出来,所以造成了没有几篇是比较有质量的,今天要整理的文章是关于这两天学习的mysql死锁和锁等待笔记,笔者觉得是比较有趣的,也算是比较有质量的文章,希望读者看完之后有所收获。

       关于mysql锁的一些基础知识后期再更新一篇博客,这里先直接进入死锁的案例,不明白基础知识的读者请先去查找其他相关的博客学习以下。

       关于mysql锁等待和锁超时可以查看笔者专门的文章:https://blog.csdn.net/LLF_1241352445/article/details/83473783

       案例1:Record Lock导致的死锁——两个不同的事务对两个不同的资源获取排他锁的顺序不一致导致的死锁;(这边使用select for update进行学习,实际企业应用中很少有该应用场景,更多的是update或者insert或者两者混合操作,该操作同理)

表结构:cre_course(primary key CSE_ID,name)

  • 在sessionA开启事务,设置set autocommit = 0;
  • 执行加排他锁操作:select * from cre_course WHERE CSE_ID = "1" for UPDATE ,此时相当于在sessionA锁定了资源1;
  • 在sessionB开
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值