# 16.8.2 如何创建联合表

16.8.2.1 使用 CONNECTION 创建一个 FEDERATED 表

16.8.2.2 使用 CREATE SERVER 创建 FEDERATED 表

创建一个联邦表,您应该按照以下步骤操作:

  1. 在远程服务器上创建表。或者,记下现有表的表定义,可能使用显示创建表陈述。

  2. 在本地服务器上创建具有相同表定义的表,但添加将本地表链接到远程表的连接信息。

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

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=utf8mb4;

要创建与远程表联合的本地表,有两个选项可用。您可以创建本地表并指定用于连接远程表的连接字符串(包含服务器名称、登录名、密码),使用联系,或者您可以使用之前使用创建服务器陈述。

重要的

当您创建本地表时必须具有与远程表相同的字段定义。

笔记

您可以提高联邦通过向主机上的表添加索引来创建表。发生优化是因为发送到远程服务器的查询包括在哪里子句并被发送到远程服务器并随后在本地执行。这减少了网络流量,否则会从服务器请求整个表进行本地处理。