一、MySQL为什么会延迟
1.1 MySQL复制的架构

1.2 大事务导致的延迟
1.3 IO线程导致的延迟
然后呢,IO thread会将binlog写到slave的relay log中,这部分工作由IO thread完成。
io thread 是单线程的 io thread 写入 relay log的速度
1.4 SQL线程导致的延迟
这是典型的消费能力不足
1.5 网络问题导致的延迟
1.6 硬件问题导致的延迟
二、延迟场景的解决方案
2.1 DDL
2.1.1 ddl的最佳实践
通过pt-osc 或者 gh-ost 来让ddl拆分成一个个小事务,并且还有流控功能 在slave上先ddl,然后master-slave切换,然后再old master上进行ddl,从而完美的解决了这个问题。
2.2 大事务
2.2.1 大事务拆小事务
2.3 大量并发事务
2.3.1 调整安全参数
2.3.2 MTS(enhanced multi-threaded slave)
终极大招

文章转载自数元技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




