mysql deadlock found_MySQL遇到Deadlock found when trying to get lock,解决方案

最近遇到一个MYSQL update语句出现Deadlock found when trying to get lock的问题,分析一下原因。

什么情况下会出现Deadlock found when trying to get lock?

https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks.html

出现死锁需要2个条件:

1)至少2个client(A,B)同时在执行事务

2)clientA锁定了某一行,未提交事务,此时clientB也需要update/delete这一行,此时clientB就会进入等待状态,直到出现Deadlock 。

如何减少死锁的发生?

很重要的两点,就可以避免这种情况

1)事务操作锁定的行数较少(更精确的索引条件)。

2)保证事务较短的执行时间,完成后马上提交。

这里有更加详细的描述:

https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks-handling.html

-

MySQL error : Deadlock found when trying to get lock; try restarting transaction

在使用 MySQL 时,我们有时会遇到这样的报错:“Deadlock found when trying to get lock; try restarting transaction”. 在 14. ...

mysql报ERROR:Deadlock found when trying to get lock; try restarting transaction(nodejs)

1 前言 出现错误 Deadlock found when trying to get lock; try restarting transaction.然后通过网上查找资料,重要看到有用信息了. 错 ...

mysql deadlock found when trying to get lock 问题排查

mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_i ...

MySql 更新死锁问题 Deadlock found when trying to get lock; try restarting transaction

文章导航-readme MySql 更新死锁问题 Deadlock found when trying to get lock; try restarting transaction 1.场景 //t ...

mysql - InnoDB存储引擎 死锁问题( Deadlock found when trying to get lock; try restarting transaction )

刚刚向数据库插入数据的时候出现了这么一段错误 Deadlock found when trying to get lock; try restarting transaction 主要原因(由于无法使 ...

Deadlock found when trying to get lock; try restarting transaction

1.错误描述 [ERROR:]2015-06-09 16:56:19,481 [抄送失败] org.hibernate.exception.LockAcquisitionException: erro ...

Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案

Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案 网上太多相关资料,但是抄袭严重,有的讲的也是之言片语的,根本不连贯(可能知道的人确实不想多说) 我总共 ...

1213 - Deadlock found when trying to get lock; try restarting transaction

1213 - Deadlock found when trying to get lock; try restarting transaction 出现这个原因要记住一点就是:innodb的行锁 和解 ...

随机推荐

JS 做时钟

今天,给大家分享一个用JS做的时钟.

Python入门笔记(26):Python执行环境

一.python特定的执行环境 在当前脚本继续进行 创建和管理子进程 执行外部命令或程序 执行需要输入的命令 通过网络来调用命令 执行命令来创建需要处理的输出 动态生成Python语句 导入Pytho ...

react webpack.config.js 入门学习

在学习react 的时候必然会用到webpack打包工具,webpack的快速入门另外一篇文章中有记录,这里只记录webpack.config.js文件,因为每个项目下都必须配置,通俗的讲,它的作用就 ...

228. Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

Oracle 异常处理

1.什么是异常 在PL/SQL中的一个警告或错误的情形都可被称为异常.包括编译时错误(PLS)和运行时错误(ORA).一个异常通常包含一个错误代码和错误文本,分别指示异常的编号和具体错误信息.   异 ...

2876: [Noi2012]骑行川藏 - BZOJ

Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...

C++ 把输出结果写入文件/从文件中读取数据

先包含头文文件 #include 输出到文件 ofstream fout;  //声明一个输出流对象 fout.open("output.txt"); ...

single-row function和muti-row function

1.single-row function 指一行数据输入,返回一个值的函数. 常见的有 字符函数(如:substr) 日期函数(如:months_between) 数字函数(如:MOD) 转换函数( ...

转 Using Async for File Access

原文:https://msdn.microsoft.com/en-us/library/jj155757.aspx using System; using System.Collections.Gen ...

Shell脚本 | 健壮性测试之空指针检查

通过 "adb shell am start" 遍历安卓应用所有的 Activity,可以检查是否存在空指针的情况. 以下为梳理后的测试流程: 通过 apktool 反编译 apk ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Java中调用MySQL函数时遇到"Deadlock found when trying to get lock; try restarting transaction"的报错,这通常表示在执行事务时发生了死锁。死锁是指两个或多个事务互相等待对方释放资源而无法继续执行的情况。 要解决这个问题,可以采取以下几种方法: 1. 重试事务:根据报错信息中的提示,可以尝试重新启动事务。在Java代码中,可以使用try-catch块来捕获该异常,然后在catch块中重新执行相同的事务操作。 2. 优化事务:死锁通常发生在多个事务同时访问相同资源时,可以通过优化事务的并发性来减少死锁的发生。例如,可以尽量减少事务的持续时间,避免长时间占用资源。 3. 加锁顺序:如果多个事务需要同时获取多个资源,可以约定一个固定的加锁顺序,以避免死锁的发生。可以根据业务需求和资源访问的频率来确定合适的加锁顺序。 4. 减少事务并发:如果死锁频繁发生,可以考虑减少事务的并发性,限制同时执行的事务数量。可以根据实际情况对并发控制进行调整,例如通过调整连接池的配置参数或调整数据库的并发控制参数。 总的来说,当在Java调用MySQL函数时遇到"Deadlock found when trying to get lock; try restarting transaction"的报错,需要注意死锁的发生原因,并采取相应的解决方法,如重试事务、优化事务、加锁顺序或减少事务并发等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySql报错Deadlock found when trying to get lock; try restarting transaction 的问题解决](https://blog.csdn.net/X_Z_P/article/details/115872579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法](https://download.csdn.net/download/weixin_38595528/12826933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mysql中update时出现时报错Deadlock found when trying to get lock; try restarting transaction的原因...](https://blog.csdn.net/qq_42303467/article/details/118673187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值