当前位置:   article > 正文

MySQL主从延迟的原因总结_mysql 主从延迟

mysql 主从延迟

一、怎么判断主从延迟

在从库上执行SHOW SLAVE STATUS,如果结果里的seconds_behind_master字段不等于0,则代表主从有延迟,值越大延迟越大。

二、可能的原因及解决方案

2.1 网络抖动

网络抖动导致主库的binlog没能及时传给从库

解决方案:

先把从库上的查询切到主库,等网络恢复后再切回从库

2.2 从库机型配置比主库差

从库配置差性能低,导致从库消费relay log的速度比主库生成binlog的速度慢

解决方案:

换成同等机型

2.3 从库压力大

有人在从库上执行十分消耗性能的SQL查询语句,导致从库负载高,影响了同步速度

解决方案:
  • 多接几个从库,分担查询压力
  • 通过把 binlog 输出到外部系统,比如 Hadoop 这类系统,让外部系统提供统计类查询的能力
2.4 主库上执行了大事务

如果一个事务在主库上执行了 10 分钟,那这个事务很可能就会导致从库延迟 10 分钟

解决方案:

避免在主库上执行大事务,例如一次性delete很多数据,应该改为分批delete;例如对大表进行DDL,建议使用 gh-ost 方案

2.5 从库不支持并行复制

只有一个线程消费relay log,速度跟不上

解决方案:

开启多线程并行复制功能。

注意:
MySQL 5.6(含)之后的版本才支持并行复制功能,其中5.6 版本虽然支持并行复制,但支持的粒度是按库并行,即同一个库里的relay log仍然只由一个线程负责处理。因此建议使用 5.7 以上的版本

参考文献:
本文由阅读丁奇的《MySQL实战45讲》课程后总结编写

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/268485
推荐阅读
相关标签
  

闽ICP备14008679号