MySQL复制从库延迟优化思路
1、什么是MySQL复制延迟?
本质是MySQL从库的relay log回放跟不上主库生成速度,产生延迟
2、主从延迟常见的原因有哪些?
1、大事务,从库回放时间较长,导致主从延迟
2、主库写入过于频繁,从库回放跟不上
3、参数配置不合理
4、主从硬件差异
5、网络延迟
6、表没有主键或者索引大量频繁的更新
7、一些读写分离的架构,从库的压力比较大
3、解决主从延迟有哪些方法
1、对于大事务,拆分成小事务
2、开启并行复制
3、升级从库硬件
4、尽量都有主键
4、什么是并行复制,参数有哪些?
先回顾MySQL并行复制的路程
a. MySQL5.6 是基于数据库级别的并行复制
slave-parallel-type=DATABASE(不同库的事务,没有锁冲突)
b. MySQL5.7 基于group commit的并行复制
slave-parallel-type=LOGICAL_CLOCK : Commit-Parent-Based模式(同一组的事务[last-commit相同]
没有锁冲突. 同一组,肯定没有冲突,否则没办法成为同一组)
上面是从库的配置,并行复制依赖于主库的组提交(注意区分组复制)
greatsql> show variables like '%group%delay%';<br>+-----------------------------------------+-------+<br>| Variable_name | Value |<br>+-----------------------------------------+-------+<br>| binlog_group_commit_sync_delay | 0 |<br>| binlog_group_commit_sync_no_delay_count | 0 |<br>+-----------------------------------------+-------+<br>2 rows in set (0.01 sec)<br>