- 在某些部署环境中,备库所在的机器性能要比主库所在的机器性能差。此时如果机器的资源不足的话就会影响备库同步的效率;
- 备库充当了读库,一般情况下主要写的压力在于主库,那么备库会提供一部分读的压力, 而如果备库的查询压力过大的话,备库的查询消耗了大量的CPU资源,那么必不可少的就会影响同步的速度
- 大事务执行,如果主库的一个事务执行了5分钟,而binlog的写入必须要等待事务完成之后,才会传入备库,那么此时在开始执行的时候就已经延迟了5 分钟了
- 主库的写操作是顺序写binlog, 从库单线程去主库顺序读binlog,从库取到binlog之后在本地执行。
mysq|的主从复制都是单线程的操作,但是由于主库是顺序写,所以效率很高,而从库也是顺序读取主库的日志,此时的效率也是比较高的,但是当数据拉取回来之后变成了随机的操作,而不是顺序的,所以此时成本会提高。 - 从库在同步数据的同时,可能跟其他查询的线程发生锁抢占的情况,此时也会发生延时。
- 当主库的 TPS 并发非常高的时候, 产生的 DDL 数量超过了一个线程所能承受的范围的时候,那么也可能带来延迟
- 在进行binlog日 志传输的时候,如果网络带宽也不是很好,那么网络延迟也可能造成数据同步延迟这些就是可能会造成备库延迟的原因
mysql 主从复制延迟产生的原因有哪些?
最新推荐文章于 2024-10-15 22:16:56 发布