广告
返回顶部
首页 > 资讯 > 数据库 >怎样解决Mysql死锁问题
  • 275
分享到

怎样解决Mysql死锁问题

2024-04-02 19:04:59 275人浏览 八月长安
摘要

怎样解决Mysql死锁问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 show engine in

怎样解决Mysql问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

show engine innodb status \G   点击(此处)折叠或打开

  1. *** (1) TRANSACTioN:

  2. TRANSACTION 9CC3, ACTIVE 0 sec, OS thread id 2384 fetching rows

  3. mysql tables in use 2, locked 2

  4. LOCK WaiT 6 lock struct(s), heap size 1024, 12 row lock(s), undo log entries 2

  5. Mysql thread id 20, query id 138891 localhost 127.0.0.1 root Sending data

  6. DELETE FROM User WHERE ID IN (SELECT UserID FROM BusinessUser WHERE BusinessID=124001692)

  7. *** (1) WAITING FOR THIS LOCK TO BE GRANTED:

  8. RECORD LOCKS space id 0 page no 92015 n bits 88 index `PRIMARY` of table `df_demo`.`user` trx id 9CC3 lock_mode X waiting

  9. Record lock, heap no 14 PHYSICAL RECORD: n_fields 48; compact fORMat; info bits 0

  10.  0: len 4; hex 80000788; asc ;;

  11.  

  12.  .......................................................................

  13.  

  14. *** (2) TRANSACTION:

  15. TRANSACTION 9CC0, ACTIVE 0 sec, OS thread id 1696 starting index read, thread declared inside InnoDB 370

  16. mysql tables in use 3, locked 3

  17. 9 lock struct(s), heap size 1024, 59 row lock(s), undo log entries 10

  18. MySQL thread id 21, query id 138887 localhost 127.0.0.1 root Sending data

  19. DELETE FROM UserOptions WHERE UserID IN (SELECT u.ID FROM User u JOIN BusinessUser bu ON u.ID=bu.UserID WHERE bu.BusinessID=124001691)

  20. *** (2) HOLDS THE LOCK(S):

  21. RECORD LOCKS space id 0 page no 92015 n bits 88 index `PRIMARY` of table `df_demo`.`user` trx id 9CC0 lock mode S locks rec but not gap

  22. Record lock, heap no 14 PHYSICAL RECORD: n_fields 48; compact format; info bits 0

  23.  0: len 4; hex 80000788; asc ;;

  24. ..........................................................................

  25.  

  26. *** (2) WAITING FOR THIS LOCK TO BE GRANTED:

  27. RECORD LOCKS space id 0 page no 92015 n bits 88 index `PRIMARY` of table `df_demo`.`user` trx id 9CC0 lock mode S locks rec but not gap waiting

  28. Record lock, heap no 11 PHYSICAL RECORD: n_fields 48; compact format; info bits 0

  29.  0: len 4; hex 80000786; asc ;;

  30.  

  31. ...........................................................................

  32.  

  33.  

  34. *** WE ROLL BACK TRANSACTION (1)

1:分析: 看看引起死锁的SQL执行计划:   点击(此处)折叠或打开

  1. mysql> explain select * FROM User WHERE ID IN (SELECT UserID FROM BusinessUser WHERE BusinessID=124001692);

  2. +----+--------------------+--------------+----------------+--------------------------------+-----------------+---------+-

  3. | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

  4. +----+--------------------+--------------+----------------+--------------------------------+-----------------+---------+-

  5. | 1 | PRIMARY | User | ALL | NULL | NULL | NULL | NULL | 6095 | Using where |

  6. | 2 | DEPENDENT SUBQUERY | BusinessUser | index_subquery | idx_UserID_Type,idx_BusinessID | idx_UserID_Type | 5 | func | 1 | Using where |

  7. +----+--------------------+--------------+----------------+--------------------------------+-----------------+---------+-

  8. 2 rows in set (0.00 sec)

User表全表扫描,会引起死锁。   2:解决 重写SQL,把IN改成JOIN,执行计划如下:   点击(此处)折叠或打开

  1. mysql> explain select a.* FROM User a inner join BusinessUser b on a.id=b.userid WHERE b.BusinessID=124001692;

  2. +----+-------------+-------+--------+--------------------------------+----------------+---------+--------------+------+

  3. | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

  4. +----+-------------+-------+--------+--------------------------------+----------------+---------+--------------+------+

  5. | 1 | SIMPLE | b | ref | idx_UserID_Type,idx_BusinessID | idx_BusinessID | 5 | const | 1 | Using where |

  6. | 1 | SIMPLE | a | eq_ref | PRIMARY | PRIMARY | 4 | ng1.b.UserID | 1 | |

  7. +----+-------------+-------+--------+--------------------------------+----------------+---------+--------------+------+

  8. 2 rows in set (0.00 sec)

两表都用到索引了。  

问题得到解决。

关于怎样解决Mysql死锁问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 怎样解决Mysql死锁问题

本文链接: https://www.lsjlt.com/news/61797.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样解决Mysql死锁问题
    怎样解决Mysql死锁问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 show engine in...
    99+
    2022-10-18
  • 【mysql】mysql死锁问题解决方案
    mysql死锁问题解决方案 查询出是被哪个进程给锁住了为什么会产生死锁日志内容:日志解析:找到问题: 解决方案 查询出是被哪个进程给锁住了 执行sql: select ...
    99+
    2023-09-23
    mysql adb 数据库
  • mysql kill process解决死锁问题
    目录mysql kill process解决死锁mysql死锁异常分析及解决问题产生原因分析解决方案mysql kill process解决死锁 1、查看进程列表, 找到ID show processlist; +--...
    99+
    2022-08-24
  • Mysql如何解决死锁问题
    这篇文章主要为大家展示了“Mysql如何解决死锁问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql如何解决死锁问题”这篇文章吧。 ...
    99+
    2022-10-19
  • 如何解决MySQL死锁问题
    这篇文章主要介绍“如何解决MySQL死锁问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何解决MySQL死锁问题”文章能帮助大家解决问题。1、什么是死锁死锁是并...
    99+
    2022-10-19
  • sql死锁问题怎么解决
    本篇内容介绍了“sql死锁问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! --查询锁表信息,...
    99+
    2022-10-18
  • Java死锁问题怎么解决
    今天小编给大家分享一下Java死锁问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:死锁(Dead Lock)...
    99+
    2023-06-30
  • mysqlkillprocess解决死锁问题
    目录mysql kill process解决死锁mysql死锁异常分析及解决问题产生原因分析解决方案mysql kill process解决死锁 1、查看进程列表, 找到ID sho...
    99+
    2022-11-13
  • 怎么理解MySQL wwwhj8828coml8o88O49999死锁问题
    本篇内容介绍了“怎么理解MySQL wwwhj8828coml8o88O49999死锁问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希...
    99+
    2022-10-18
  • RC级别下MySQL死锁问题的解决
    目录背景死锁分析死锁解决背景 在工作中碰到一次死锁问题,业务背景是在mq接收商品主数据时会更新商品其他数据,由于商品主数据和商品其他信息是一对多的关系,所以采用先删后增的方式,结果异...
    99+
    2022-11-13
  • MySQL insert死锁问题解决详细记录
    目录Insert死锁问题剖析前置知识构造死锁原因故死锁产生的原因MySQL 5.7 的死锁前提示例原因解决方案总结Insert死锁问题剖析 线上有个批量的insert … on duplicate key ...
    99+
    2022-11-04
  • MySQL insert死锁问题解决详细记录
    目录Insert死锁问题剖析前置知识构造死锁原因故死锁产生的原因MySQL 5.7 的死锁前提示例原因解决方案总结Insert死锁问题剖析 线上有个批量的insert &hellip...
    99+
    2022-11-13
    mysql insert死锁 mysql死锁排查及解决 MySQL死锁
  • MySQL死锁问题的分析及解决方法
    这篇文章主要讲解了“MySQL死锁问题的分析及解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL死锁问题的分析及解决方法”吧!MySQL死锁问...
    99+
    2022-10-18
  • Java多线程死锁问题怎么解决
    解决Java多线程死锁问题的常用方法有以下几种:1. 避免使用多个锁:尽量减少使用多个锁来降低出现死锁的概率。2. 按照固定的顺序获...
    99+
    2023-09-22
    Java
  • Mysql如何使用kill命令解决死锁问题
    这篇文章给大家介绍Mysql如何使用kill命令解决死锁问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,...
    99+
    2022-10-18
  • update.where无索引导致MySQL死锁问题解决
    目录引言死锁的日志分析日志复盘总结引言 随着我被拉入一个新的群聊“生产环境死锁问题排查解决”,打破了午后的悠然惬意,点开群聊秒送了一个648超级大礼包(业务不正常,死锁异常日志输出),领导怒斥并要...
    99+
    2022-11-02
  • 在python中解决死锁的问题
    1.添加超时时间: fromthreading import Thread, Lock importtime mutex1= Lock() # 创建一个互斥锁 mutex2=...
    99+
    2022-11-12
  • 死锁问题详解
    目录前言资源可抢占资源和不可抢占资源资源获取死锁资源死锁的条件死锁模型鸵鸟算法死锁检测和恢复从死锁中恢复通过抢占进行恢复通过回滚进行恢复杀死进程恢复死锁避免单个资源的银行家算法破坏死...
    99+
    2022-11-12
  • Process的waitFor死锁问题如何解决
    本篇内容主要讲解“Process的waitFor死锁问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Process的waitFor死锁问题如何解决”吧!Process的waitFor死...
    99+
    2023-06-22
  • 如何解决java中的死锁问题
    一、死锁的定义死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。那么我们换一个更加规范的定义:集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,...
    99+
    2016-01-19
    java教程 java 死锁
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作