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

【mysql】row模式的主从架构中,删除无主键的表可能导致从库“夯住”或产生较大的同步延迟

目录

          • 1. row模式的主从架构
          • 2. 无主键表的问题
          • 3. 可能的影响
          • 4. 解决方案

1. row模式的主从架构
  • 1.在MySQL的主从架构中,row模式是一种重要的二进制日志(binlog)格式。
  • 2.它记录了每一行数据的具体变更,包括插入、更新和删除操作。
  • 3.当主库上的数据发生变化时,这些变化会记录在binlog中,并通过网络传输到从库,由从库的SQL线程重新执行一遍,以实现数据的同步。
2. 无主键表的问题
  • 1.主键是数据库表中唯一地标识表中的每一行数据。
  • 2.在row模式的主从架构中,如果表没有主键,那么在执行删除操作时,从库在定位需要删除的数据时可能会变得非常困难。
  • 3.当从库在处理binlog中的删除操作时,它会尝试定位具体的数据行。
  • 4.如果表没有主键或索引,那么从库只能进行全表扫描来查找需要删除的数据。
  • 5.在大数据量的表中,全表扫描是非常耗时的,可能会导致从库的SQL线程阻塞,从而无法继续处理后续的binlog日志。
3. 可能的影响
  • 1.从库夯住:在极端情况下,如果删除操作涉及的数据量非常大,且表没有主键或索引,那么从库可能会因为无法及时定位并删除数据而“夯住”,即无法继续正常工作。
  • 2.同步延迟:即使从库没有夯住,由于全表扫描的耗时性,也会导致从库在处理binlog日志时出现较大的同步延迟。这种延迟可能会影响到业务的实时性和一致性。
4. 解决方案
  • 1.确保每个表都有主键:这是最好的解决办法。主键可以唯一地标识表中的每一行数据,从而方便从库在定位数据时能够快速找到目标行。
  • 2.使用索引:如果确实无法为主键添加主键约束(例如,由于历史原因或业务逻辑的限制),那么可以考虑为表添加其他类型的索引(如唯一索引或普通索引)。这些索引也可以在一定程度上提高从库定位数据的效率。
  • 3.优化删除操作:在执行删除操作时,尽量使用带有索引的where条件来限制删除的数据范围。这样可以减少全表扫描的可能性,并降低从库的处理负担。

http://www.kler.cn/a/441058.html

相关文章:

  • Java开发vscode环境搭建
  • 线段树(Segment Tree)和树状数组
  • C#,入门教程(13)——字符(char)及字符串(string)的基础知识
  • JAVA(SpringBoot)集成Kafka实现消息发送和接收。
  • Axure PR 9 旋转效果 设计交互
  • 电子电气架构 --- 在智能座舱基础上定义人机交互
  • JDK以及JRE
  • 三菱协议以及C#实现
  • 【十进制整数转换为其他进制数——短除形式的贪心算法】
  • 【kubernetes】kubectl get nodes报NotReady
  • iOS和安卓,怎样才能轻松实现文件互传?
  • 爬虫运行中遇到反爬虫策略怎么办
  • Leetcode:1338
  • vim save
  • SSM虾米音乐项目6--后台专辑模块的修改和删除
  • 2024安装hexo和next并部署到github和服务器最新教程
  • 【windows-bat脚本】-修改系统时间
  • 实时数仓中涉及更新历史数据(如小时、天、月的汇总数据)时,数据库是否支持 UPSERT(存在更新,否则插入)会显著影响解决方案。
  • 白平衡和色彩偏移使用(富士)
  • 2025erp系统开源免费进销存系统搭建教程/功能介绍/上线即可运营软件平台源码
  • 数据可视化-2. 条形图
  • 流程图(一)利用python绘制弦图
  • 如何使用Nginx Proxy Manager实现反向代理与SSL支持高效管理网络服务
  • 读心术小游戏(附加源码)
  • 淘宝评论API接口:解锁电商数据洞察的钥匙
  • iOS开发 UIAlertView与UIActionSheet替换方案之SDAlertView与SDActionSheet