ホームページ > データベース > mysql チュートリアル > MySQL でクロスサーバー SELECT クエリを効率的に実行するにはどうすればよいですか?

MySQL でクロスサーバー SELECT クエリを効率的に実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-03 19:52:14
オリジナル
648 人が閲覧しました

How Can I Efficiently Perform Cross-Server SELECT Queries in MySQL?

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 属性で指定されたリモート テーブルからデータを取得します。クエリの結果は、ローカル サーバー上のテーブルから取得されたかのように、ローカルで利用できます。

その他の考慮事項

  • パフォーマンス: データの取得には、フェデレーテッド テーブル間の通信が含まれるため、パフォーマンスのオーバーヘッドが発生する可能性があります。 network.
  • 制限事項: フェデレーション テーブルには、特定の種類の操作 (DDL 操作など) をリモート テーブルで直接実行できないなど、いくつかの制限があります。
  • セキュリティ: データを安全に転送するには、SSH 暗号化などの適切なセキュリティ対策を設定することが不可欠です。サーバー。

以上がMySQL でクロスサーバー SELECT クエリを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート