随着连接到主机的从机数量的增加,尽管每个负载都很小,但负载也增加了,因为每个从机都使用到主机的客户端连接。同样,由于每个从站必须接收主二进制日志的完整副本,因此主站上的网络负载也可能增加并造成瓶颈。
如果您使用大量从属服务器连接到一个主服务器,而该主服务器也正在忙于处理请求(例如,作为横向扩展解决方案的一部分),那么您可能希望提高复制过程的性能。
改善复制过程性能的一种方法是创建一个更深的复制结构,该复制结构可使主服务器仅复制到一个从服务器,并使其余从服务器连接到该主从服务器以满足其各自的复制需求。图17.3“使用附加的复制主机提高性能”中显示了此结构的示例 。
图17.3使用其他复制主机提高性能

为此,必须按以下方式配置MySQL实例:
主机1是将所有更改和更新都写入数据库的主要主机。应在此计算机上启用二进制日志记录。
主站2是主站1的从站,它向复制结构中的其余从站提供复制功能。主站2是唯一允许连接到主站1的计算机。主站2还启用了二进制日志记录,并且启用了 log_slave_updates系统变量,以便将来自主站1的复制指令也写入主站2的二进制日志中,以便随后将其复制到主站2。真正的slaves。
从站1,从站2和从站3充当主站2的从站,并复制来自主站2的信息,该信息实际上由登录到主站1的升级组成。
上述解决方案减少了主服务器上的客户端负载和网络接口负载,当用作直接数据库解决方案时,这将提高主服务器的整体性能。
如果您的从属服务器无法跟上主服务器上的复制过程,则可以使用许多选项:
如果可能,请将中继日志和数据文件放在不同的物理驱动器上。为此,设置 relay_log系统变量以指定中继日志的位置。
如果从服务器比主服务器慢得多,则可能需要划分将不同数据库复制到不同从服务器的责任。请参见 第17.3.5节“将不同的数据库复制到不同的从站”。
如果您的主服务器使用事务,而您不关心从服务器上的事务支持,则在从服务器上使用 MyISAM或其他非事务引擎。请参见 第17.3.3节“在不同的主存储和从存储引擎中使用复制”。
如果您的从站不充当主站,并且有适当的解决方案可以确保在发生故障时可以启动主站,则可以禁用 log_slave_updates系统变量。这样可以防止“ 笨拙 ”的从站还将自己执行的事件记录到自己的二进制日志中。




