分别在MySQL5.7和8.0中测试主从复制中主库表缺失主键会导致主从延迟的情况

0    329    2

Tags:

👉 本文共约1512个字,系统预计阅读时间或需6分钟。

之前发布过的一篇类似文章:【DB宝34】测试MySQL主从复制中主库表缺失主键会导致主从延迟的情况

简介

检查延迟的方法:在从库上通过SHOW SLAVE STATUS检查Seconds_Behind_Master值即可获取主从复制延迟的秒数。

主从复制延迟,可能的原因有主库和从库方面:
① 主库写binlog不及时。
② dump线程压力大
③ IO线程阻塞
④ 表缺乏主键或唯一索引(常见)
假设主库更新一张500w表中的20w行数据,该update语句仅需要全表扫描1次;而在row格式下,记录到binlog日志中的SQL为20w次update操作,此时SQL Thread重放将特别慢,因为每一次update都需要进行一次全表扫描,即从库需要执行20w次的全表扫描。
⑤ 主库DML请求频繁(tps较大)
⑥ 主库执行大事务,导致从库SQL慢
⑦ 主库对大表执行DDL语句
⑧ 主库与从库硬件配置不一致
⑨ 从库自身压力过大
⑩ MyISAM存储引擎
⑪ 主从复制的服务器时钟是否一致。主从同步延迟与系统时间的关系,查看主从两台机器间系统时间差
⑫ 网络通信是否存在延时。主从同步延迟与压力、网络、机器性能的关系,查看从库的IO,cpu,mem及网络压力
⑬ 从库查询是否优化(比如存在查询慢,导致从库性能差,处理不过来)
⑭ 是否启用了延迟复制,使用“show slave status”查看SQL_Delay是否大于0

今天我们就通过实验的方式来验证第4种情况。

MySQL 5.7 环境准备

MySQL环境初始化

主库配置

从库配置

主从查询

MySQL 5.7实验过程

主库创建表

主库先创建一张8万行的大表:

主库做更新操作

可以看出,主库基本在1s就更新完成,变化的行数为2万行。

从库查询延迟,

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复