Mysql主从延迟问题解决

69 阅读1分钟

机器性能方面

从库机器性能比主库的机器性能差,只需选择主从库一样的规格的机器就好。

从库压力大(读压力过大)

可以搞一主多从的架构,还可以把binlog接入到Hadoop这类系统,让它们提供查询的能力。

从库过多

因为所有的从库都是要读取主库的binlog的,如果从库过多就会导致网络IO过高,所以要避免复制的从节点数量过多,从库一般以3~5个为宜。

大事务导致从库数据同步延迟

如果一个事务执行就要10分钟,那么主库执行完后,给到从库执行,最后这个事务可能就会导致数据同步较慢,我们可以将大事务拆分为小事务进行执行。 大表的DDL语句也会导致从库数据同步延迟。

网络延迟

优化网络,尽可能的选择局域网,尽可能两台机器在同一个机房。 宽带进行升级,比如从20M升级到100M

Mysql 版本低

低版本的Mysql只支持单线程复制,如果主库并发高,从库使用单线程进行binlog回写就会导致数据延迟,我们可以使用高版本的的Mysql,支持多线程复制。比如Mysql5.7就支持Gtid 可以实现多线程进行日志回写。