MYSQL并发删除数据造成死锁.docxVIP

  • 11
  • 0
  • 约1.26千字
  • 约 6页
  • 2023-08-01 发布于北京
  • 举报
MYSQL并发删除数据造成死锁 在第20章中讲解了MySQL中加锁的分析,我们还需要将这些理论知识运用到实际中。从本章开始将介绍几个死锁案例,下面我们先介绍如何查看MySQL中的死锁日志。 问题现象 相信大家都遇到过发生死锁的情况,但是却无法说清楚为什么会发生死锁,有时给客户的答复也是模棱两可的,其中很大的原因是不去查看死锁日志,或者不会阅读死锁日 志。很多人都说MySQL中的死锁日志的可读性不是很好,其实只要细心分析死锁日志并结合第20章中的知识,就会发现死锁日志也并不是很难阅读的。本章的案例是客户在夜间批量执行数据处理时发生了死锁,这是由不同的会话并发删除数据引起的。这个问题的原因比较简单,但是想通过这个案例让大家熟悉如何排查死锁问题、如何阅读死锁日志才是目的。通过模拟死锁现象,得到死锁日志如下: 如何阅读死锁日志 要排查死锁问题,首先要学会如何阅读死锁日志。MySQL死锁日志看起来并不是很直观,需要我们一步一步地耐心分析。 我们将上面的死锁日志拆分阅读,可以得出以下信息。 两个事务的事务ID 事务39474在执行DELETE语句时发生了锁等待 通过以上信息可以看出,事务39474在执行DELETE语句时,在申请id=4这条记录上的X锁时发生锁等待:lock_mode X locks rec but not gap waiting。 事务39475持有锁的信息 事务39475持

文档评论(0)

1亿VIP精品文档

相关文档