MySQL 8.0 参考手册  / 第 16 章替代存储引擎  / 16.8 联合存储引擎  /  15.8.2 如何创建 FEDERATED 表

15.8.2 如何创建 FEDERATED 表

要创建FEDERATED表,您应该遵循以下步骤:

  1. 在远程服务器上创建表。或者,记下现有表的表定义,也许使用SHOW CREATE TABLE 语句。

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

要创建联合到远程表的本地表,有两个选项可用。您可以创建本地表并指定连接字符串(包含服务器名称、登录名、密码)以使用 连接到远程表CONNECTION,或者您可以使用之前使用该 CREATE SERVER语句创建的现有连接。

重要的

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

笔记

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