使用联合引擎查询 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;
注意:
以上是如何连接不同服务器上的 MySQL 表?的详细内容。更多信息请关注PHP中文网其他相关文章!