mysql-主从延迟

一、背景

因为业务量的突然增加,并发dml增多,造成了主从延迟,所以这里总结下主从延迟的产生原因及解决办法

二、原因及解决

1.慢查询

解释:因为慢查询占用了大量资源,如cpu,io(主要影响),这时候就会造成从库的延迟
解决方案:kill慢查询

2.大量dml并发

解释:产生的原因有几点

2.1 binlog_row_image影响
默认为full(记录所有列),改成minimal (仅记录更改的列,以及识别行所需的列)可以节省io和网络,但是会影响闪回和一些第三方工具的同步

2.2 binlog_format影响
默认为row,可以改成MIXED,这样对根据条件一次更改或删除多行的事务复制效果好,不过也要考虑下游是否有第三方同步工具,且官方的推荐也是row

2.3 innodb_flush_log_at_trx_commit影响
默认为1,也可以改成0或者2,同步延迟也有可能是从库刷盘次数太多引起的,短暂改成0或者2后会减少刷盘次数,但要主要数据安全性,自己均衡

2.4 relay_log_info_repository影响
默认为file,设置为table可以减少磁盘io

2.5 多线程复制
slave_parallel_type=LOGICAL_CLOCK,
slave_parallel_workers>0
这样开启了多线程复制,在高并发的时候会有用处

2.6 刷盘友好
innodb_flush_method=O_DIRECT
innodb_buffer_pool_size,innodb_log_file_size,innodb_log_files_in_group这几个参数适当调整,减少刷盘次数

以上涉及到的参数详解链接:稍后补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值