文章 > MySQL > mysql主从延迟的原因

mysql主从延迟的原因

mysql

小妮浅浅

2021-10-18 11:48:05312浏览 · 0收藏 · 0评论

1,从库的机器性能比主库差。

例如,将20个主库放在4台机器中,从库放在一台机器中。此时更新操作,由于更新会触发大量阅读操作,导致库机上的多个库争夺资源,导致主从延迟。

2,从库压力大。

按照正常策略,读写分离,主库提供写作能力,从库提供读写能力。从库中放置大量查询,导致从库中消耗大量CPU资源,进而影响同步速度,导致主从延迟。

3,大事务的执行。

一旦大事务执行,主库必须等到事务完成后才能写入binlog。例如,主库施了一个insert..select非常大的插入操作,产生了近百Gbinlog文件传输到只读节点,导致只读节点应用binlog延迟。

4,主库DDL(alter.drop.create)

只读节点与主库DDL同步串行。如果DDL在主库中运行很长时间,从库中也会消耗同样的时间。例如,在主库中添加500W表需要10分钟,这也需要10分钟。

5,锁冲突。可能导致节点SQL线程执行缓慢。

如从机上有一些SELect...forupdateSQL等。

实例

a)优化数据库性能来降低负载
b)提升数据库配置。生产环境中建议只读实例配置至少要与主实例配置相同,避免因为配置相差较大导致的复制延迟。
c)新增slave实例来横向扩展业务读请求,降低只读实例的负载压力
d)优化业务慢查询

以上就是mysql主从延迟的原因,希望对大家有所帮助。更多mysql学习指路:Mysql

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

Baidu