MySQL主从复制延迟解决方案

第1章 MySQL主从复制延迟解决方案

1.1主从复制原理:

Mysql主从复制是单线程操作的,io线程读取binlog日志,效率会比较高,但是SQL线程将主库的DDLDML操作早slave端实施,DMLDDLio操作是随机的,不是顺序的,成本会比较高,还可能salve端有查询操作导致lock争抢,SQL线程也是单线成的,一个DDL卡住了,需要时间执行,所有DDL就会等待那个DDL,问题就来了,主从复制就会有延迟了。

1.1.1DDLDML是什么?

 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

1.1.2为什 么slave会延时?

master是并发的,SQL线程却不可以

1.2导致主从复制延迟的原因:

  1. 当主库的TPS并发较高时,产生的DDL数量超过slave一个sql线程所能承受的范围,那么延时就产生了。
  2. 当然还有就是可能与slave的大型query语句产生了锁等待。
  3. 服务器硬件太差。
  4. 负载过高(masterslave),大量的查询操作。
  5. 网络延迟

1.3如何解决主从复制延迟问题:

1.3.1方案一:读写分离

1.3.2方案二:半同步

1.3.3.方案三:修改配置文件,尽量让主库的DDL快速执行

比如 sync_binlog=1innodb_flush_log_at_trx_commit = 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binloginnodb_flushlog也 可以设置为0来提高sql的执行效率

1.3.4方案四:提升slave端硬件设备

使用比主库更好的硬件设备作为slave

转载于:https://www.cnblogs.com/A121/p/10471895.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值