我正在尝试在 MySQL 服务器前面实现一个代理层,它将捕获冗余 SQL 查询并将它们仅发送一次到服务器。换句话说,我有很多客户端(在 PHP、Perl 中,在不同的 Web 节点上)与 MySQL 通信并且经常重复相同的SELECT
查询。当流量上升时,MySQL 通常会下降。
问题是 - 您是否知道任何可以提供帮助的开源(或商业)工具?我试过MySQL Proxy,但看起来无济于事。
我正在尝试在 MySQL 服务器前面实现一个代理层,它将捕获冗余 SQL 查询并将它们仅发送一次到服务器。换句话说,我有很多客户端(在 PHP、Perl 中,在不同的 Web 节点上)与 MySQL 通信并且经常重复相同的SELECT
查询。当流量上升时,MySQL 通常会下降。
问题是 - 您是否知道任何可以提供帮助的开源(或商业)工具?我试过MySQL Proxy,但看起来无济于事。
两个建议:
这里有两个额外的建议
建议 #1 设置集群
如果你的数据都是 InnoDB,你应该尝试Percona XtraDB Cluster并结合它使用 HAProxy。您可以在集群中的所有服务器(包括 Write Master)之间进行负载平衡。
SUGGESTION #2 通过 MySQL 复制设置集群到 1 个或多个 DB 服务器
使用 HAProxy 在 Read Slave 之间对读取进行负载平衡
如果预算有限且数据相对较小,请在一台服务器上设置多个 MySQL 实例