FEDERATED
テーブルを作成するときは、次の手順に従うようにしてください。
リモートサーバーにテーブルを作成します。 または、
SHOW CREATE 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=utf8mb4;
リモートテーブルにフェデレートされるローカルテーブルを作成するには、2 つのオプションを使用できます。 ローカルテーブルを作成し、CONNECTION
を使用してリモートテーブルへの接続に使用される接続文字列 (サーバー名、ログイン、パスワードを含みます) を指定するか、CREATE SERVER
ステートメントを使用してすでに作成された既存の接続を使用できます。
ローカルテーブルを作成する場合、リモートテーブルに同一のフィールド定義を持つ必要があります。
インデックスをホストのテーブルに追加することで、FEDERATED
テーブルのパフォーマンスを向上できます。 最適化は、リモートサーバーに送信されるクエリーに WHERE
句の内容が含まれ、リモートサーバーに送信されてからローカルで実行されるために行われます。 これにより、そうしないとローカル処理のためにサーバーからテーブル全体を要求することになるネットワークトラフィックが削減されます。