15.8.2 如何创建联合 table

要创建一个FEDERATEDtable,您应该遵循以下步骤:

  • 在远程服务器上创建 table。另外,也可以使用显示创建 table语句记录现有 table 的 table 定义。

  • 使用相同的 table 定义在本地服务器上创建 table,但是添加将本地 table 链接到远程 table 的连接信息。

例如,您可以在远程服务器上创建下 table:

CREATE TABLE test_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=MyISAM
DEFAULT CHARSET=latin1;

要创建将联合到远程 table 的本地 table,有两个选项可用。您可以使用CONNECTION创建本地 table 并指定用于连接到远程 table 的连接字符串(包含服务器名称,登录名,密码),也可以使用以前使用CREATE SERVER创建的现有连接。声明。

Important

创建本地 table 时,它必须具有与远程 table 相同的字段定义。

Note

通过将索引添加到主机上的 table,可以提高FEDERATEDtable 的性能。之所以会进行优化,是因为发送到远程服务器的查询将包含WHERE子句的内容,并将发送到远程服务器并随后在本地执行。这样可以减少网络流量,否则网络流量会从服务器请求整个 table 进行本地处理。