首页 >数据库 >mysql教程 >如何连接不同服务器上的 MySQL 表?

如何连接不同服务器上的 MySQL 表?

Barbara Streisand
Barbara Streisand原创
2024-12-08 15:38:10473浏览

How Can I Join MySQL Tables Across Different Servers?

使用联合引擎查询 MySQL 中不同服务器的两个表

问题:

是可以将来自两个不同 MySQL 服务器的表连接到一个单一的表中查询?

解决方案:

是的,可以使用 MySQL 联合引擎。

实现:

要连接来自两个不同服务器的表,您必须首先创建指向远程表的联合表。联合表必须与原始表具有相同的结构。

以下是创建名为 federated_table1 的联合表的示例,该表指向 server1 上名为 table1 的远程表:

CREATE TABLE federated_table1 (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@server1:3306/db1/table1';

一旦您已经创建了联合表,您可以像常规一样加入它们表:

SELECT a.field1, b.field2
FROM federated_table1 a
INNER JOIN federated_table2 b
ON a.field1 = b.field2;

注意:

  • CONNECTION 字符串中指定的用户必须具有访问远程表所需的权限。
  • 联合查询的性能可能会因网络延迟和远程服务器上的负载而异。

以上是如何连接不同服务器上的 MySQL 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn