主从延时的原因及解决方案
主从延时的原因及解决方案
今天为网友们详解主从延时的原因及解决方案的IT小经验,接下来就是全面介绍。
主从延迟情况
我们先看看,哪些情况会导致主从延时:
- 从库机器性能:从库机器比主库的机器性能差,只需选择主从库一样规格的机器就好。
- 从库压力大:可以搞了一主多从的架构,还可以把 binlog 接入到 Hadoop 这类系统,让它们提供查询的能力。
- 从库过多:要避免复制的从节点数量过多,从库数据一般以3-5个为宜。
- 大事务:如果一个事务执行就要 10 分钟,那么主库执行完后,给到从库执行,最后这个事务可能就会导致从库延迟 10 分钟啦。日常开发中,不要一次性 delete 太多 SQL,需要分批进行,另外大表的 DDL 语句,也会导致大事务。
- 网络延迟:优化网络,比如带宽 20M 升级到 100M。
- MySQL 版本低:低版本的 MySQL 只支持单线程复制,如果主库并发高,来不及传送到从库,就会导致延迟,可以换用更高版本的 MySQL,支持多线程复制。

主从延时解决方案
面试时,有些同学能回答出使用缓存、查询主库、提升机器配置等,仅仅这些么?
最容易想到的方法,缩短主从同步时间:
- 提升从库机器配置,可以和主库一样,甚至更好;
- 避免大事务;
- 搞多个从库,即一主多从,分担从库查询压力;
- 优化网络宽带;
- 选择高版本 MySQL,支持主库 binlog 多线程复制。
也可以从业务场景考虑:
- 使用缓存:我们在同步写数据库的同时,也把数据写到缓存,查询数据时,会先查询缓存,不过这种情况会带来 MySQL 和 Redis 数据一致性问题。
- 查询主库:直接查询主库,这种情况会给主库太大压力,核心场景可以使用,比如订单支付。
如果能把上面基本回答出来,就已经非常厉害了,还有么?
其实还可以在 MySQL 架构上来考虑。
主库对数据安全性较高,设置配置如下:
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
而 slave 不需要这么高的数据安全,完全可以将 sync_binlog 设置为 0,或者关闭 binlog,innodb_flushlog 也可以设置为 0,来提高 sql 的执行效率。
架构方案:使用多台 slave 来分摊读请求,再从这些 slave 中取一台专用的服务器,只作为备份用,不进行其他任何操作,比如设置 sync_binlog 为0,或者关闭 binglog 等,提升从库查询性能。
以上是IT袋网网关于主从延时的原因及解决方案的全文内容,IT袋网[www.itdai.com]希望对网友有所帮助!
相关阅读
-
详细解析:串行通信接口UART的工作原理与应用
小编带来的是的电脑小知识,接下来IT袋网小编就来介绍。 在嵌入式系统和电子产品中,UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)是一种常见的通信协议。 通过为设备提供串
-
数据一致性模型有哪些类型
小编为大家解答数据一致性模型有哪些类型方面的介绍,接下来IT袋网小编就来介绍。 强一致性: 当更新操作完成之后,任何多个后续进程的访问都会返回最新的更新过的值,这种是对用户最
-
系统数据库有哪些 详解数据库系统包括的部分
本文导读:系统数据库有哪些和详解数据库系统包括的部分的IT小经验,具体详情如下: 各位小伙伴们,最近忙于自己的事情,难得闲下心来想在这里记录些什么,在自己做网络知识相关笔记
-
空间数据库名词解释 空间数据库关键概念
IT袋网网为大家说一说空间数据库名词解释方面的介绍,接下来分享详细内容。 空间数据库(Spatial Database)是一种专门用于存储和管理空间数据(如地理位置、坐标、线、多边形等)的数据库


