MySQL 8.0 リファレンスマニュアル


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

リモートテーブルにフェデレートされるローカルテーブルを作成するには、2 つのオプションを使用できます。 ローカルテーブルを作成し、CONNECTION を使用してリモートテーブルへの接続に使用される接続文字列 (サーバー名、ログイン、パスワードを含みます) を指定するか、CREATE SERVER ステートメントを使用してすでに作成された既存の接続を使用できます。

重要

ローカルテーブルを作成する場合、リモートテーブルに同一のフィールド定義を持つ必要があります

注記

インデックスをホストのテーブルに追加することで、FEDERATED テーブルのパフォーマンスを向上できます。 最適化は、リモートサーバーに送信されるクエリーに WHERE 句の内容が含まれ、リモートサーバーに送信されてからローカルで実行されるために行われます。 これにより、そうしないとローカル処理のためにサーバーからテーブル全体を要求することになるネットワークトラフィックが削減されます。


関連キーワード:  テーブル, ストレージ, エンジン, 作成, FEDERATED, サーバー, リモート, ローカル, CREATE, 接続