gpt4 book ai didi

带有 MySQL 集群的 PHP/PDO

转载 作者:IT王子 更新时间:2023-10-29 00:35:45 30 4
gpt4 key购买 nike

我被要求重新开发一个旧的 php web 应用程序,该应用程序当前使用 mysql_query 函数来访问复制的数据库(4 个从属,1 个主控)。

此重新开发的一部分会将一些数据库移动到 mysql-cluster 中。这些天我通常使用 PDO 来访问数据库,我正在尝试找出 PDO 是否可以很好地与集群配合使用,但是我在网络上找不到太多有用的信息。

有人有这方面的经验吗?我以前从未使用过集群...

最佳答案

我已经通过几种不同的方式完成了这项工作,并取得了不同程度的成功。简短的回答是您的 PDO 连接应该可以正常工作。在我看来,选项如下:

如果您正在使用复制,那么要么编写一个类来处理与各种服务器的连接,要么使用代理。代理可以是硬件或软件。 MySQL Proxy (http://docs.oracle.com/cd/E17952_01/refman-5.5-en/mysql-proxy.html) 是我过去使用的软件负载平衡器,在大多数情况下它都起到了作用。它会自动在您的读者和作者之间路由流量,并像冠军一样处理故障转移。时不时地,我们会编写一个查询,将其抛出并不得不调整一些东西,但那是几年前的事了。它现在可能处于更好的状态。

另一种选择是使用标准负载均衡器并创建两个连接 - 一个用于写入者,另一个用于读取器。您的应用可以根据其尝试执行的功能决定使用哪个连接。

最后,您可以考虑使用 MySQL 提供的最大数据库集群。在此设置中,MySQL 服务器都是读取器和写入器。您只需要一个连接,但您需要一个负载均衡器来路由所有流量。如果索引变得不同步,Max db cluster 可能会很棘手,所以如果您选择此选项,请谨慎行事。

澄清:当我提到连接时,我的意思是连接到 MySQL 的地址和端口——不要与在同一端口上运行的并发连接混淆。

祝你好运!

关于带有 MySQL 集群的 PHP/PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165203/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com