文章 2024-10-14 来自:开发者社区

案例剖析:MySQL唯一索引并发插入导致死锁!

MySQL锁列表 共享与排他锁: S 锁:共享锁,允许其他事务并行读;禁止其他事务持有排它锁 X 锁:排它锁,允许持有排它锁的事务对数据更新,禁止其他事务对数据持有共享锁或排它锁 注:普通的 select * from user 属于快照读,不加任何锁。 ...

案例剖析:MySQL唯一索引并发插入导致死锁!
文章 2024-07-17 来自:开发者社区

MySQL 并发插入唯一键相邻数据和更新数据导致死锁

一 前言 死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 案例分析 2.1 业务场景 业务上的主要逻辑: 首先执行插入数据,如果插入成功,则提交。如果插入的时候报唯一键冲突,则执行更新。 如果同时出现三个并发在执行数据初始化动作,sess1 插...

MySQL 并发插入唯一键相邻数据和更新数据导致死锁
文章 2024-07-17 来自:开发者社区

MySQL 并发 replace 导致的死锁

一 前言     死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。本文是源于生产过程中一个死锁案例。二 背景知识   官方文档[1]中表述:"REPLACE is done like an INSERT if there is no col...

文章 2024-07-17 来自:开发者社区

MySQL 并发insert 导致的死锁

一 前言死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。二 案例分析2.1 业务场景正常的业务逻辑是用户触发行为系统发消息然后写入2条记录。如果遇到处理失败或者消息超时则会重试。2.2 环境说明MySQL 5.7.22 事务隔离级别...

文章 2024-07-17 来自:开发者社区

MySQL 并发 insert on duplicate key 导致的死锁

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 案例分析 2.1 业务场景 业务方的目的是使用insert on duplicate key update对重复存在的记录进行更新,没有则插入最新的记录。 另外需要特别注明的是我们最近对数据...

MySQL 并发 insert on duplicate key 导致的死锁
文章 2024-07-17 来自:开发者社区

MySQL 并发更新冗余索引字段导致的死锁

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 案例分析 2.1 业务场景 业务开发同学要做业务逻辑迁移,由A表迁移到B表,B表承担所有的类型的业务,他们的业务逻辑是:上游发task_id列表给下游,下游的业务根据一定的逻辑进行处理,在并发更...

MySQL 并发更新冗余索引字段导致的死锁
文章 2024-07-17 来自:开发者社区

MySQL 并发更新唯一键和插入数据导致死锁

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。二 案例分析2.1 业务场景业务开发同学想同步数据,他们的逻辑是通过update 更新操作,如果更新记录返回的affect_rows为0ÿ...

文章 2024-07-17 来自:开发者社区

MySQL 三个并发insert 语句导致的死锁

一 前言        死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。本文介绍一例三个并发insert 导致的死锁,根本原因还是在于insert 唯一键申请插入意向锁这个特殊的GAP锁。其实称呼插入意向锁 为 Insert I...

MySQL 三个并发insert 语句导致的死锁
文章 2024-07-17 来自:开发者社区

MySQL 并发insert 唯一键冲突导致的死锁

一 前言       死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 背景知识 2.1 insert 锁机制 在分析死锁案例之前,我们先学习一下背景知识 insert 语句的加锁策略。我们先来看看官方定义: "An ins....

文章 2024-07-17 来自:开发者社区

MySQL 并发delete不存在记录申请gap锁导致死锁

一 前言     死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。本文源于我们的生产案例:并发申请gap锁导致的死锁案例,与之前的 死锁案例一不同,本案例是因为RR模式下两个事务中的sql可以获取同一个gap锁,导致对方...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

数据库

数据库领域前沿技术分享与交流

+关注
相关镜像