サーバーの 1 つで連合テーブルを使用するのはどうですか? クエリで使用するリモート テーブルに基づいて連合テーブルを作成し、データベースがすべてローカルであるかのようにクエリを実行します。以下のMySQL サイトの例
FEDERATED テーブルを使用する手順は非常に簡単です。通常、同じホスト上または異なるホスト上で 2 つのサーバーを実行しています。(FEDERATED テーブルが、同じサーバーによって管理される別のテーブルを使用することは可能ですが、そうすることにはほとんど意味がありません。)
まず、FEDERATED テーブルを使用してアクセスするリモート サーバー上にテーブルが必要です。リモート表が連合データベースにあり、次のように定義されているとします。
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
CHARSET=latin1;
この例では MyISAM テーブルを使用していますが、テーブルには任意のストレージ エンジンを使用できます。
次に、リモート テーブルにアクセスするための FEDERATED テーブルをローカル サーバーに作成します。
CREATE TABLE federated_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=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
(MySQL 5.0.13 より前では、CONNECTION ではなく COMMENT を使用してください。)