首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL-死锁

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

1. 死锁。

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

更新时互相等待

死锁报错

SELECT ... FOR UPDATE 排它锁

死锁报错

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

数据表内容:

索引设置:

死锁报错

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

最后

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

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券