Federated Engine を使用して MySQL の異なるサーバーから 2 つのテーブルをクエリする
質問:
は2 つの異なる MySQL サーバーのテーブルを 1 つのサーバーで結合することが可能クエリ?
解決策:
はい、MySQL Federated Engine を使用して可能です。
実装:
2 つの異なるサーバーのテーブルを結合するには、まずリモートサーバーを指すフェデレーテッドテーブルを作成する必要があります。テーブル。フェデレーテッド テーブルは、元のテーブルと同じ構造である必要があります。
これは、server1 上の table1 という名前のリモート テーブルを指す federated_table1 という名前のフェデレーテッド テーブルを作成する例です。
CREATE TABLE federated_table1 ( 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@server1:3306/db1/table1';
フェデレーテッド テーブルを作成したら、通常のように結合できます。テーブル:
SELECT a.field1, b.field2 FROM federated_table1 a INNER JOIN federated_table2 b ON a.field1 = b.field2;
注:
以上が異なるサーバー間で MySQL テーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。