生产上数据库死锁,是该程序员祭天了

本文通过一个实际的业务场景,分析了由并发更新和插入操作导致的MySQL数据库死锁问题。介绍了死锁的概念、必要条件以及MySQL的锁类型。通过事务日志揭示了死锁的原因,并提出了面对死锁时的解决思路,包括模拟死锁、查看死锁日志、分析SQL等。
摘要由CSDN通过智能技术生成

Hello,大家好,我是 Skow

阅读这篇文章之前,大家可以问问自己

  • 何为死锁?

  • Mysql具有哪些锁?

  • Mysql 的锁模式兼容矩阵你是否清楚?

  • 如何排查死锁问题?

如果你可以闭着眼睛回答出来这些问题的,那么就默默点赞离开👍🏻

如果你对上面的知识点,还有点含糊不清,那么这篇文章将会带你从一个真实业务场景入手,分析死锁问题,希望本文对你有所帮助,Let’s go 🤨

图片

业务背景

目前我司有两个系统 A 系统、B系统

A 系统存放着公司所有人员的信息

B 系统需要日终定时从 A 系统同步数据

人员已在 B 系统中存在,则更新,不存在则插入

因人员信息过多,所以采取多线程方式同步人员数据

在验证代码的时候,😡测试人员怒气冲冲的反应, sync_user 也就是我们的同步人员的那张数据表打不开了

遇事莫慌,先甩锅运维,“小姐姐,莫急莫慌,肯定是数据库系统出问题了"

经过运维和DBA的排查,其实罪魁祸首是开发

我们的代码导致了这张表出现了死锁,从而导致表打不开了

那,到底是为何发生了死锁?接下来我们还原一下案发现场

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值