mysql前面的代理用于冗余删除

时间:2012-06-29 14:46:59

标签: mysql database architecture proxy

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

问题是 - 您是否了解任何可以提供帮助的开源(或商业)工具?我试过MySQL Proxy,但看起来无能为力。

2 个答案:

答案 0 :(得分:3)

两个建议:

  1. MySQL代理 这是来自MySQL的前端代理,据我所知做了你想做的事情
  2. vtocc 来自YouTube mysql环境中使用的vitess项目,也做了类似的事情。查询合并:能够将正在进行的查询的结果重用于在查询仍在执行时收到的任何后续请求。

答案 1 :(得分:0)

您可能需要查看HAProxyhow it works

这里有两个额外的建议

建议#1设置群集

如果您的数据都是InnoDB,则应尝试使用Percona XtraDB Cluster并将HAProxy与其结合使用。您可以在群集中的所有服务器(包括Write Master)上进行负载均衡。

建议#2通过MySQL复制将群集设置到一个或多个数据库服务器

使用HAProxy对Read Slaves

中的读取进行负载均衡

如果您的预算有限且数据相对较小,setup multiple MySQL Instances on one server