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

mysql DDL可重入讨论

mysql的bug:当执行 MySQL online DDL 时,期间如有其他并发的 DML 对相同的表进行增量修改,比如 update、insert、insert into … on duplicate key、replace into 等,且增量修改的数据违背唯一约束,那么 DDL 最后都会执行失败,报错主键冲突。

这里的“增量修改的数据违背唯一约束”,从实践来看即使insert into on duplicate执行成功,依然有可能触发DDL报错,并非一定要DML执行失败。

参考:

https://blog.csdn.net/Tony_stark_L/article/details/127596879

解决方案:

  • 重试DDL
  • 使用第三方工具 pt-osc 或者 gh-ost 执行在线 DDL
  • 在 DDL 语句中指定 ALGORITHM=COPY,但该过程中只允许查询,不允许写入

方案2要引入额外的工具,方案3的话mysql内部要新建临时表,多占一倍空间,且改表结构时不能写入对业务影响也较大。

故选择方案1,建议确保DDL是可重入的,可以做工具完成DDL的可重入检查。

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

相关文章:

  • DAY01 面向对象回顾、继承、抽象类
  • 127周一复盘 (165)玩法与难度思考
  • 【C语言常见概念详解】
  • 弹性分组环——RPR技术
  • 定制Centos镜像
  • Java---判断素数的三种方法
  • 多级缓存(亿级并发解决方案)
  • 代理模式 - 代理模式的应用
  • 编辑器Vim基本模式和指令 --【Linux基础开发工具】
  • 云计算如何与物联网(IoT)结合?
  • C#面试常考随笔4:int? 和 int的区别,以及int?的运用场景?
  • DeepSeek-R1试用
  • Vue 3 30天精进之旅:Day 06 - 表单输入绑定
  • [创业之路-269]:《创业讨论会》- 系统之韵:从麻雀到5G系统的共通性探索
  • 使用C#对指定的MYSQL数据库进行备份以及常见问题
  • 探索人工智能在计算机视觉领域的创新应用与挑战
  • Charles 4.6.7 浏览器网络调试指南:HTTPS抓包(三)
  • STM32 对射式红外传感器配置
  • 12 款开源OCR发 PDF 识别框架
  • 危机13小时:追踪一场GitHub投毒事件
  • CVE-2020-0796永恒之蓝2.0(漏洞复现)
  • 游戏策划的分类
  • 单片机基础模块学习——PCF8591芯片
  • 深入探索 HTML5 拖拽效果 API:打造流畅交互体验
  • 【Healpix】python一种用于将球面划分为均匀区域的技术
  • Go:基于Go实现一个压测工具
  • 算法-加油站问题
  • UART ,IIC 和SPI三种总线协议
  • Padas进行MongoDB数据库CRUD
  • 动手学图神经网络(6):利用图神经网络进行点云分类