MySQL主从延迟如何解决?

我们知道生产环境中经常会遇到MySQL主从延迟问题,从原理上也能看出主库的事务提交是并发模式,而从库只有一个SQL线程负责解析,所以本身上就可能存在延迟。

延迟的主要原因在于:

1、从库的配置往往没有主库的配置高
2、主库支持并发写入,而5.7之前的版本上从库只有单线程SQL来完成任务。

3、MySQL主从之间的同步,并不是完全的实时同步,而是主库提交事务之后,从库才再来执行一遍

4、主库上的表的某个列没有索引,然后对这个列进行delete或update操作

5、网络问题,往返时延RTT较大。

解决方案如下:

1、使用MySQL5.7版本,MySQL5.7版本后引入新的机制,即基于组提交的并行复制,设置参数slave_parallel_workers的值大于0,还有一个参数slave_parallel_type='LOGICAL_CLOCK'。

。MySQL [fruit]> show variables like '%parallel%';
+------------------------+----------+
| Variable_name          | Value    |
+------------------------+----------+
| slave_parallel_type    | DATABASE |
| slave_parallel_workers | 0        |
+------------------------+----------+
2 rows in set (0.00 sec)

上面这个是没有修改的例子而已。仅仅是为了展示

2、可以采用percona公司的PXC架构,实现多借点写入,达到时时同步

扫描二维码关注公众号,回复: 4764657 查看本文章

3、在业务初期就选择合适的分库、分表策略,避免单表单库过大带来额外的复制压力。

4、避免一些无用的I/O消耗,使用PCIE-SSD硬盘

5、磁盘阵列选择RAID10架构,raid cache策略使用WB而非WT

6、适当调整buffer pool的大小

7、避免数据库进行各种大量的运算。

猜你喜欢

转载自www.cnblogs.com/FengGeBlog/p/10215828.html
今日推荐