MySQL クロスサーバー選択クエリ: 詳細ガイド
地理的に分散した複数の MySQL サーバーを操作する場合、クロスサーバー選択クエリが必要になります。サーバーのデータ操作が発生します。そのようなシナリオの 1 つは、あるサーバー上のテーブルからデータを選択し、それを数マイル離れた別のサーバー上のテーブルに挿入するという要件です。
この課題に対処するために、MySQL は安全性を高めるための SSH トンネルを確立する機能を提供します。サーバー間の通信。ただし、SSH トンネル経由でサーバー間でテーブルに直接アクセスすることは、MySQL ではサポートされていないことに注意することが重要です。
代わりに、フェデレーテッド テーブル と呼ばれる強力な機能が、この問題に対する洗練された解決策を提供します。フェデレーテッド テーブルを使用すると、別のサーバー上のリモート テーブルを表すローカル プロキシ テーブルを作成できます。これにより、リモート テーブルがローカル サーバー上に物理的に存在するかのように、ローカルのフェデレーテッド テーブルに対してクエリを実行できます。
フェデレーテッド テーブルの作成
フェデレーテッド テーブルを作成するにはを使用するには、まずリモート テーブルが存在するサーバー上でリモート テーブルを定義する必要があります。リモート テーブルが確立されたら、次の構文を使用して、ローカル サーバー上でフェデレーテッド テーブルの作成に進むことができます。
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
この例では、CONNECTION 属性は、リモート テーブルの詳細を指定します。データベース名、テーブル名、ユーザー名、およびパスワード。
クロスサーバーの実行クエリ
フェデレーテッド テーブルが作成されると、リモート テーブルがローカルであるかのように、クロスサーバー選択クエリを実行できます。たとえば、次のクエリについて考えてみます。
SELECT * FROM federated_table WHERE <condition>;
このクエリは、フェデレーテッド テーブルの CONNECTION 属性で指定されたリモート テーブルからデータを取得します。クエリの結果は、ローカル サーバー上のテーブルから取得されたかのように、ローカルで利用できます。
その他の考慮事項
以上がMySQL でクロスサーバー SELECT クエリを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。