从两个不同的服务器连接表

Gul*_*rej 27 mysql

我有两个不同的服务器server1server2,现在我已经db1server1db2server2.我试图像这样在MySQL中加入这两个表.

Select a.field1,b.field2  
FROM  [server1, 3306].[db1].table1 a  
Inner Join [server2, 3312].[db2].table2 b  
ON a.field1=b.field2  
Run Code Online (Sandbox Code Playgroud)

但我收到了错误.在MYSQL中是可能的.

Sta*_*arx 29

是的,它可以在MySQL中使用.

有问类似的问题以前也.您必须使用FEDERATED ENGINE来执行此操作.这个想法是这样的:

您必须具有基于另一个远程位置的表的联合表才能使用您想要的方式.表的结构必须完全相同.

CREATE TABLE federated_table (
    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@remote_host:9306/federated/test_table';
Run Code Online (Sandbox Code Playgroud)

[来源答复]

  • 对于大型数据库表,这非常慢.我仍在寻找一种更好的方法,但在许多情况下,FEDERATED表的扩展性不够好. (2认同)