0

我正在尝试在 MySQL 服务器前面实现一个代理层,它将捕获冗余 SQL 查询并将它们仅发送一次到服务器。换句话说,我有很多客户端(在 PHP、Perl 中,在不同的 Web 节点上)与 MySQL 通信并且经常重复相同的SELECT查询。当流量上升时,MySQL 通常会下降。

问题是 - 您是否知道任何可以提供帮助的开源(或商业)工具?我试过MySQL Proxy,但看起来无济于事。

4

2 回答 2

3

两个建议:

  1. MySQL 代理这是 MySQL 的前端代理,据我所知,它可以满足您的需求
  2. vtocc 来自 vitess 项目,用于 YouTube mysql 环境,也做了类似的事情。查询合并:将进行中查询的结果重用于查询仍在执行时收到的任何后续请求的能力。
于 2012-09-04T16:38:01.753 回答
0

您可能想了解HAProxy及其工作原理

这里有两个额外的建议

建议 #1 设置集群

如果你的数据都是 InnoDB,你应该尝试Percona XtraDB Cluster并结合它使用 HAProxy。您可以在集群中的所有服务器(包括 Write Master)之间进行负载平衡。

SUGGESTION #2 通过 MySQL 复制设置集群到 1 个或多个 DB 服务器

使用 HAProxy 在 Read Slave 之间对读取进行负载平衡

如果预算有限且数据相对较小,请在一台服务器上设置多个 MySQL 实例

于 2012-06-29T14:49:18.960 回答