1

我只想准确了解 MySQL Proxy 的连接和查询行为。

我有两个后端服务器都运行相同的 MySQL 安装,设置在一个似乎运行良好的主-主配置中。即我可以在一个上操作表格和数据,并且更改会立即反映在另一个上,反之亦然。

我已经在单独的机器上安装了 MySQL Proxy,后端服务器在批处理文件的命令行中指定。

我可以使用代理的地址通过 Workbench 访问我的数据库。

我的问题是如何以及将什么委派给每个服务器?它在文档中声明代理使用循环拆分客户端(我假设只是平均拆分请求?)。这是否意味着实际建立的 PDO 连接被共享出来,或者是发送给它的查询?

如果是后者,它是否也会分解子查询?如果不是,那么我是否需要重新编码更复杂的 SQL 语句以利用客户端/连接拆分?


我认为需要重新完成查询的一个简单示例是:

$SQL = "SELECT id FROM my_table LIMIT 1000";

将(更多参与):

$results = array();
for($1=0;$i<1000;$i++){
    $conn = new $this->dbconnect;
    $r = $conn->prepare('SELECT id FROM my_table WHERE id = ?');
    $r->execute(array($i));
    array_push($results, $r->fetch);
    $conn->close();
}

或者这只是疯狂?请求在服务器之间拆分的事实是否会抵消额外的开销?或者它会比“传统”方式慢得多吗?(对任何代码错误表示歉意,因为这不是我的想法)。

我知道 LIMIT 不是“id”,它只是一个简单的例子。

4

0 回答 0