首页
学习
活动
专区
圈层
工具
发布

MySQL-死锁

本文基于MySQL数据库引擎InnoDB,通过本文了解:

1. 死锁。

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。以下是一些示例。

更新时互相等待

死锁报错

SELECT ... FOR UPDATE 排它锁

死锁报错

依赖索引列删除,同时插入数据

数据表内容:

索引设置:

死锁报错

原因:当加入非主键索引后,两个事务都拿到了相同区间(当前最大-无穷大)的锁,所以会产生死锁。

最后

合理的设计业务逻辑,合理的设计事务大小,合理的使用索引。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181202G0ZXEH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

交个朋友

加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
首页
学习
活动
专区
圈层
工具
MCP广场