当前位置: 首页 > news >正文

update导致死锁

update delete 操作,如果走的索引,对索引和主键索引加行锁
如果没有走索引,锁整张表。

不开启事务,mysql本身也会加锁
一般MYSQL在执行CREATE,ALTER,INSERT等命令时会自动加锁

在对数据进行更新操作时
如果update没用到索引,直接锁表,不会死锁
如果update用到了索引,根据索引查询顺序进行索引加锁。因此可能会加锁顺序不一致导致死锁。

解决办法:
1、禁用index_merge
在查询的时候只会走一个索引,不会都走。如果不禁用index_merge。会先走id1索引,再走id2索引,将查询结果求交集。

2、把两个索引设置成联合索引

3、先使用select查询出要更新的数据主键,再根据主键进行更新。

http://www.lryc.cn/news/16223.html

相关文章:

  • Java 集合 --- 如何遍历Map
  • C#从值类型、引用类型到装箱和拆箱
  • Java中的逻辑运算符/移位运算符简单总结
  • 活动预告 | GAIDC 全球人工智能开发者先锋大会
  • 【Linux系统】认识操作系统和操作系统如何进行管理以及进程相关状态
  • 【0基础学爬虫】爬虫基础之HTTP协议的基本原理介绍
  • SpringBoot 整合定时任务
  • 我的零分周赛:CSDN周赛第30期,成绩“0”分,天然气定单、小艺读书、买苹果、圆桌
  • 二、Java虚拟机的基本结构
  • 华为OD机试 - 用户调度(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • HashMap(JDK1.8)源码+底层数据结构分析
  • case的使用
  • Mac配置ITerm2
  • JUC并发编程(下)
  • API接口的基础知识
  • 基于Spring Boot的教务管理系统
  • 网页扫描图像并以pdf格式上传到服务器端
  • Airbyte入门
  • 研究人员在野外发现大量的信息窃取者 “Stealc “的样本
  • 数据结构——复杂度讲解(2)
  • 【LeetCode】任务调度器 [M](贪心)
  • Spring代理模式——静态代理和动态代理
  • Anaconda和PyCharm的一些安装问题和命令
  • sql优化建议
  • google hacker语句
  • Spring AOP
  • 【消费战略方法论】认识消费者的恒常原理(一):消费者稳态平衡原理
  • python居然能语音控制电脑壁纸切换,只需60行代码
  • 内存泄露定位手段(c语言hook malloc相关方式)
  • STM32 CAN波特率计算