一般情况下觉得备库没有请求,所以可以用差一点儿的机器来做备库。但实际上,更新过程中也会触发大量的读操作。当备库主机上的多个备库都在争抢资源的时候,就可能会导致主备延迟了。
当然,这种部署现在比较少了。因为主备可能发生切换,备库随时可能变成主库,所以主备库选用相同规格的机器,并且做对称部署,是现在比较常见的情况。
主库既然提供了写能力,那么备库可以提供一些读能力。很多人会选择在备库上数据分析、大量数据处理,导致备库上的查询耗费了大量的 CPU 资源,影响了同步速度,造成主备延迟。
这种情况,我们一般可以这么处理:
如果一个主库上的语句执行 10 分钟,那这个事务很可能就会导致从库延迟 10 分钟。比如:一次性地用 delete 100万行数据。
主备服务不在同一局域网内,或者跨区域问题。