我计划通过在当前服务器旁添加另一台MySQL服务器来提高我的网站性能,因为当前服务器太忙了。
是否可以在没有PHP代码更改的情况下使用MySQL复制扩展PHP应用程序?我的意思是所有的quires都会被发送到master,master会在它自己和slave之间分配负载。
有没有简单的方法将所有写入quire发送到主设备并在主设备和从设备之间分配读取请求?
答案 0 :(得分:1)
我认为您需要在数据库服务器和客户端(您的代码)之间放置一个负载均衡器/代理。示例解决方案是:
答案 1 :(得分:0)
如果您不想手动执行“负载平衡”,则可能需要查看MySQL Proxy。
答案 2 :(得分:0)
我认为您还应该优化您的应用程序代码(PHP),然后您应该优化您的架构。
首先,您可以检查您的MYSQL查询。 Mysql慢查询日志可以帮到你。如果您遇到连接问题(MYSQL服务器已经消失或连接太多等),您应该管理应用程序的连接池机制。
和其他步骤以及您的答案(我认为),您可以设置MYSQL主 - 主复制。清楚地设置复制时,可以将复制的负载均衡器(HAProxy)放在前面。 你有两个mysql节点(服务器A和服务器B,它们都是主服务器) 您可以配置HAProxy,服务器A是主服务器,服务器B是备份服务器。您的所有MYSQL操作都通过HAProxy来到服务器A,您的数据会自动与服务器B同步。 当服务器A关闭时,HAProxy会自动发送所有查询服务器B.
您也可以配置HAProxy,服务器A是所有插入查询,服务器B是所有读取查询。 在所有这些情况下,您的代码应通过HAProxy连接MYSQL