Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


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;

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

重要

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

注記

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


User Comments
  Posted by Roland Bouman on February 21, 2007
There's a stored procedure available at MySQLForge to create FEDERATED tables:

http://forge.mysql.com/snippets/view.php?id=54

It relies on the information_schema of the remote host, so it will only work if both the local and the remote server are 5.0 or greater
Sign Up Login You must be logged in to post a comment.