首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
闪畅技术团队
掘友等级
广州闪畅信息科技有限公司
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
19
文章 19
沸点 0
赞
19
返回
|
搜索文章
赞
文章( 19 )
沸点( 0 )
MySQL 死锁套路:一次诡异的批量插入死锁问题分析
线上最近出现了批量insert的死锁,百思不得姐。死锁记录如下 第一反应是批量insert,insert的顺序不一样导致的死锁。但是这个在这里是不成立的。原因有两点 在t1插入记录时,是不加锁的。这个时候事务t1还未提交的情况下,事务t2尝试插入的时候,发现有这条记录,t2尝试…
MySQL 死锁套路:再来看一例走不同索引更新的例子
前面几篇文章介绍了利用调试MySQL源码的方式来调试锁相关的信息,这里利用这个工具来解决一个比较简单的问题,线上的表字段较多,这里简单成为了一个表sql语句如下我们先用之前debug的方式来看一下,这
MySQL 死锁套路:三个事务插入有一个回滚
这个是非常经典的一个场景,在网上搜索插入意向锁造成的死锁,绝大部分都会指向这个例子表结构三个事务的insert语句都是insertignoreintot1(a,b)values("1","1");复现
MySQL 死锁套路:唯一索引下批量插入顺序不一致
死锁的本质是资源竞争,批量插入如果顺序不一致很容易导致死锁,我们来分析一下这个情况。为了方便演示,把批量插入改写为了多条 insert。 在 t1 插入记录时,是不加锁的。这个时候事务 t1 还未提交的情况下,事务 t2 尝试插入的时候,发现有这条记录,t2 尝试获取 S 锁,…
彻底弄懂 Nginx location 匹配
location 支持的语法 location [=|~|~*|^~|@] pattern { ... },乍一看还挺复杂的,来逐个看一下。 http://website.com/ABCD可能会匹配 ,也可以不匹配,取决于操作系统的文件系统是否大小写敏感(case-sensit…
如何在 Mac 下用 Clion 调试 MySQL 源码
前面写了几篇文章来通过调试 MySQL 源码来分析死锁问题,有读者问如何用 IDE 调试源码,这篇文章简单介绍一下如何在 Mac 下调试。 之所以使用调试的方式来分析死锁问题是因为在解决 MySQL 死锁的过程中比较纠结,就算找到了原因,也比较难说服自己原理就是书上或者网上博客…
MySQL 死锁套路:走不同的索引更新
前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实际的死锁案例,也是我们介绍的第一个两条 SQL 就造成死锁的情况。因为线上的表结构比较复杂,做了一些简化以后如下
MySQL 死锁套路:唯一索引 S 锁与 X 锁的爱恨情仇
上一篇文章介绍了使用调试 MySQL 源码的方式来查看死锁的过程,这篇文章来讲讲一个常见的案例。 毫不夸张的说,有一半以上的死锁问题由唯一索引贡献,后面介绍的很多死锁的问题都跟唯一索引有关。这次我们讲一段唯一索引 S 锁与 X 锁的爱恨情仇 我们用之前介绍过的源码分析方式,先来…
从源码分析 MySQL 死锁问题入门
结论:不走索引进行更新时,sql 会走聚簇索引(主键索引)对全表进行扫描,因此每条记录,无论是否满足条件,都会被加上X锁。还没完... 但是为了效率考量,MySQL做了优化,对于不满足条件的记录,会在判断后放锁,最终持有的,是满足条件的记录上的锁,但是不满足条件的记录上的加锁/…
关注了
1
关注者
12
收藏集
1
关注标签
1
加入于
2019-04-03