MySQL的主从同步延时怎么解决?

如何解决MySQL主从同步的延时问题?

MySQL查看数据库运行状态:show status;
可以看到Seconds_Behind_Master这个信息,是slave落后master的秒数,我们可以通过Seconds_Behind_Master数字查看slave是否落后master。

其实这块东西我们经常会碰到,就比如说用了mysql主从架构后,可能会发现,刚写入库的数据结果没查到,结果就完蛋了。
(1) 产生所谓的主从延迟主要是看主库的写并发
(2) 主库的写并发达到1000/s,从库的延迟会有几ms
(3) 主库的写并发达到2000/s,从库的延迟会有几十ms
(4) 主库的写并发达到4000/s,从库的延迟会达到几秒

所以实际上你要考虑应该在什么场景下来使用这个mysql主从同步,建议是一般在读远远多于写,而且读的时候一般对数据时效性要求没那么高的时候,用mysql主从同步。

所以这个时候,我们可以考虑的一个事情就是,你可以用mysql的并行复制,但是问题是那是库级别的并行,所以有时候作用不是很大。

所以我们会对于那种写了之后立马就要保证可以查到的情景,采用强制读取主库的方式,这样就可以保证一定可以读到数据,这个操作用数据库中间件是可以实现的。

总结:

一般来说,如果主从延时较为严重:

(1) 分库,将一个主库拆分为4个主库,每个主库的写并发就500/s,此时主从延迟可以忽略不计。

(2) 打开mysql支持的并行复制,多个库并行复制,如果说某个库的写入并发就是特别高,单库写并发达到了2000/s,并行复制还是没意义。28法则,很多时候比如说,就是少数的几个订单表,写入了2000/s,其他几十个表10/s。

(3) 如果确实是存在必须先插入,立马要求就查询到,然后立马就要反过来执行一些操作,对这个查询设置直连主库。不过不推荐这种方法,因为这样子读写分离的意义就丧失了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值