ホームページ >データベース >mysql チュートリアル >フェデレーテッド テーブルを使用してクロスサーバー MySQL SELECT クエリを実行するにはどうすればよいですか?
MySQL は、フェデレーテッド テーブルを使用して、異なるデータベース サーバー間でデータをクエリするメカニズムを提供します。これは、サーバーが離れて配置されており、直接接続が不可能な場合に特に役立ちます。
説明したシナリオでは、1.2.3.4 と a.b.c.d に 2 つの MySQL サーバーがあり、それぞれが Test という名前のデータベースをホストしており、次のことができます。フェデレーテッド テーブルを使用して、一方のサーバーから行を選択し、それらをもう一方のサーバーのテーブルに挿入します。
フェデレーテッド テーブルを作成するには、まず次のことが必要です。 2 つのサーバー間に SSH トンネルを確立します。これにより、一方のサーバー (リモート サーバー) からもう一方 (ローカル サーバー) を介して接続できるようになります。
SSH トンネルが確立されたら、次のようにローカル サーバー上にフェデレーテッド テーブルを作成できます。
CREATE TABLE federated_table ( id INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '', other INT(20) NOT NULL DEFAULT '0', INDEX name (name), INDEX other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://fed_user@remote_host:port/database_name/table_name';
ここで:
フェデレーテッド テーブルが作成されると、そのテーブルに対して SELECT クエリを実行して、リモート テーブルからデータを取得できます。その後、INSERT ステートメントを使用して、クエリの結果をローカル サーバー上のテーブルに挿入できます。
フェデレーテッド テーブルから行を選択し、それらを local_table という名前のローカル テーブルに挿入するクエリの例を次に示します。
INSERT INTO local_table (id, name, other) SELECT id, name, other FROM federated_table;
以上がフェデレーテッド テーブルを使用してクロスサーバー MySQL SELECT クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。