最近遇到一个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

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

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