主从延迟可以根据 MySQL 提供的命令判断,比如,在从服务器使用命令: show slave status;,其中 SecondsBehindMaster 如果为 0 表示主从复制状态正常。 导致主从延迟的原因有以下几个:

  • 主库有大事务处理;
  • 主库做大量的增、删、改操作;
  • 主库对大表进行字段新增、修改或添加索引等操作;
  • 主库的从库太多,导致复制延迟。从库数量一般 3-5 个为宜,要复制的节点过多,导致复制延迟;
  • 从库硬件配置比主库差,导致延迟。查看 Master 和 Slave 的配置,可能因为从库的配置过低,执行时间长,由此导致的复制延迟时间长;
  • 主库读写压力大,导致复制延迟;
  • 从库之间的网络延迟。主从库网卡、网线、连接的交换机等网络设备都可能成为复制的瓶颈,导致复制延迟,另外跨公网主从复制很容易导致主从复制延迟。