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

故障分析 | MySQL死锁案例分析

作者:杨奇龙网名“北在南方”,资深 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。...本次分享的一个死锁案例是 涉及通过辅助索引的更新以及通过主键删除导致的死锁。希望能够对想了解死锁的朋友有所帮助。...二 案例分析2.1 业务逻辑select for update 表记录并加上 x 锁,查询数据,做业务逻辑处理,然后删除该记录。还有其他业务逻辑要更新记录,导致死锁。...2.2 环境说明数据库 MySQL 8.0.30 事务隔离级别 REPEATABLE-READcreate table dl(id int auto_increment primary key,c1...另外文章的最后我们再次复习一下 MySQL 的加几个基本原则,方便大家后面遇到死锁案例进行分析:原则 1:加锁的基本单位是 next-key lock。原则 2:查找过程中访问到的对象才会加锁。

79130

故障分析 | MySQL死锁案例分析

作者:杨奇龙网名“北在南方”,资深 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。...本次分享的死锁案例是 更新不存在的记录加上 X GAP lock 和 insert 的意向锁冲突。希望能够对想了解死锁的朋友有所帮助。...二 案例分析2.1 业务逻辑业务逻辑: 业务需要并发不同数据(insert+update),首先是更新记录,如果发现更新的 affect rows 为0,然后就执行插入,如果插入失败,再执行更新。...tables in use 1, locked 1LOCK WAIT 4 lock struct(s), heap size 1128, 3 row lock(s), undo log entries 1MySQL...另外文章的最后我们再次复习一下 MySQL 的加几个基本原则,方便大家后面遇到死锁案例进行分析:原则 1:加锁的基本单位是 next-key lock。原则 2:查找过程中访问到的对象才会加锁。

71540
您找到你想要的搜索结果了吗?
是的
没有找到

故障分析 | MySQL 优化案例 - select count(*)

---- 本文关键字:count、SQL、二级索引 相关文章推荐: 故障分析 | MySQL 优化案例 - 字符集转换 技术分享 | MySQL 监控利器之 Pt-Stalk 一、故事背景 项目组联系我说是有一张...四、原理 为了找到答案,通过 Google 查找 MySQL 下 select count(*) 的原理,找到了答案。这边省略过程,直接上结果。...调整部分 MySQL 参数,重启 MySQL,保证目前 innodb buffer pool (内存缓冲区) 中为空,不缓存任何数据; 3....key_len: 4 ref: NULL rows: 5117616 filtered: 100.00 Extra: Using index 七、案例总结...升级到 MySQL 8 中,使用并行查询,加快检索速度。 当然,什么时候 InnoDB 存储引擎可以直接实现计数器的功能就好了!

5.3K30

故障分析 | MySQL 优化案例 - 字符集转换

---- 本文关键字:SQL 优化、字符集 相关文章推荐: 故障分析 | MySQL 派生表优化 故障分析 | 有效解决 MySQL 行锁等待超时问题【建议收藏】 一、背景 开发联系我,说是开发库上有一张视图查询速度很慢...二、问题 SQL Server version: 5.7.24-log MySQL Community Server (GPL) 这个 SQL 非常简单,定义如下,其中就引用了 view_dataquality_analysis...那么基本可以验证我的猜想,当 MySQL 创建视图时,如果发现表连接字段字符集不相同时,会自动添加字符集转换。 另外之前我们有个为什么 b 表没有走索引,是因为缺失了索引吗?的疑问。...其实这个问题有点类似于 int=varchar 隐式转换问题,等号左边为 int 类型,右边为 varchar 类型,那么 MySQL 会自动转换类型为一致,因而无法走索引。

1.4K10

故障分析 | MySQL 从机故障重启后主从同步报错案例分析

故障现象 MySQL 从库所在主机故障重启后,sql_thread 线程报错: root@3306 (none)> show slave status\G -- 摘取有用信息如下: Slave_IO_Running...故障分析 主机重启前,主从同步正常,主机重启后,主从同步由于主键冲突报错,对比了冲突主键所在行记录在主从库是一致的,初步分析事务'471c2974-f9bb-11eb-afb1-52540010fb89...:88313207'在主机故障前已经在从库进行了回放,那为何事务会重复回放呢?...测试验证 搭建一主一从测试环境,通过 sysbench 模拟主库并发插入,从库主机暴力关机后,故障复现: root@mysql.sock][(none)]> select * from performance_schema.replication_applier_status_by_worker...故障处理 既然错误原因是事务重复执行,那跳过错误就好了,有如下两种方式,根据需要选取其中一种方式执行: 5.1.

81310

故障分析 | mysql mgr 多主数据不能更新案例浅析

1.故障现象 一套运行快两年的 MGR 三节点多主环境(5.7.25),在节点1成功导入一批数据后,开发反馈程序修改这批数据报错,报错信息如下: update match_equip set name...." 1.1.尝试故障恢复操作1 经过初步分析,发现导入的这批数据,在导入节点1可以更新,在其他节点更新失败,怀疑1节点有问题,本着快速恢复故障原则,询问开发得知1节点可以重启,于是对其进行重启,重启后不能加入组复制...2.2.故障分析 2.2.1.当前 mgr 中 certification_info 有11239426条记录,mgr 每隔60s清理一次,为何会这么大?...2.3.2.故障模拟及恢复 2.3.2.1.当前环境信息:节点3含有本地事务 root@mysql.sock][fxtest]> select * from performance_schema.replication_group_members...[root@mysql.sock][fxtest]> 2.3.2.4.故障修复 2.3.2.5.场景1:节点3本地事务对应 binlog 还存在,如何修复 只需重启节点1、2组复制即可同步过来节点3的本地事务

1.8K20

故障案例MySQL唯一索引有重复值,官方却说This is not a bug

问题 原因 故障解决方案 复现步骤 参考文献 一、问题: MySQL5.7.38主从架构,主节点唯一索引上(唯一索引不是主键)有重复值,全部从节点报1062,SQL线程状态异常,根据SQL线程报的binlog...三、故障解决方案: 一、临时解决方案 恢复主从: 在从节点开启会话 set sql_log_bin=0 删除表的唯一索引 重新启动复制线程 缺点是:不能够解决数据重复的问题,切换主从后会面临更多重复数据的问题...表结构: mysql> create database wl; mysql> show create table wl.lgf\G *************************** 1. row...重新插入重复唯一索引数据: mysql> set unique_checks=0; mysql> use wl mysql> insert into wl.lgf(id,c,pad) values(...id=106121) MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables(https://dev.mysql.com

1.7K20

MySQL 传统复制中常见故障处理和结构优化案例分析

虽然MySQL5.7 的主从复制已经很稳定了,但在备库可读写的情况下,总是会出现部分数据不一致的情况,例如常见的1062、1032和1050错误。...环境描述 一 1、mysql 5.7 以上, 2、binlog format 是row格式(5.7默认) 3、传统复制(生产强烈推荐使用gtid) 4、log-bin , log_slave_updates....sock 104 导入数据 mysql -S /tmp/mysql3306.sock -uroot -p123456 < /tmp/1203.sql change 104 到103 change...-S /tmp/mysql3306.sock -uroot -p123456 -e "insert into enmo.t2 values($i)"done 关闭103 主机,并检查104 slave....000093', MASTER_LOG_POS=387204, master_connect_retry=10; 作者介绍 张灿 云和恩墨技术顾问 2015年12月加入云和恩墨,擅长oracle、mysql

71170
领券