MySQL の別々のサーバーからのテーブルの結合
2 つの異なるサーバー (server1 とserver2) からテーブルを結合しようとすると、エラーが発生する可能性があります。 MySQL の FEDERATED ENGINE を使用してこの課題を克服するアプローチは次のとおりです。
フェデレーテッド テーブルの使用
サーバー間のギャップを埋めるには、リモート テーブルに基づいてフェデレーテッド テーブルを作成します。 。両方のテーブルの構造は同一のままである必要があります。
コード例:
test_table という名前のリモート テーブルに基づいて federated_table というフェデレーテッド テーブルを作成します:
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';
フェデレーション接続を確立すると、サーバー間でテーブルを結合することができます。 local:
SELECT a.field1, b.field2 FROM federated_table AS a INNER JOIN [server2, 3312].[db2].table2 AS b ON a.field1 = b.field2;
注: フェデレーション接続を確立するには、fed_user アカウントが両方のサーバーで適切な権限を持っている必要があります。
以上が異なる MySQL サーバー間でテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。