どのようにサーバのいずれかに連合テーブルを使用してはどうですか? クエリで使用するリモートテーブルに基づいてフェデレーテッドテーブルを作成し、データベースがすべてローカルであるかのようにクエリを実行します。下の例MySQL site
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://[email protected]_host:9306/federated/test_table';
(MySQLの5.0.13の前に、というよりもCONNECTION使用COMMENT。)
あなたが今までにしている場合mysqlクライアントが参加している状況では、問題が起きます。正しい解決策は、サーバーが互いに通信し、クライアントに送信する単一の結果セットを生成することです。 MSSQLはサーバを "リンク"できるようにすることでこれを行い、接続に使用するクレデンシャルなどを設定します。これらのサーバはエイリアス経由でアクセスされます。 – Basic
あなたが話していたことをかなり理解するために私は少し読んでいました。もう1つの答えは、MySQLでこれを行う方法を説明しています。 – staticsan