MySQL でのデータベース間クエリの例

MySQL でのデータベース間クエリの例

序文

MySQL では、クロスデータベース クエリは主に 2 つの状況に分けられます。1 つは同じサービス内でのクロスデータベース クエリ、もう 1 つは異なるサービス間でのクロスデータベース クエリです。クロスデータベース クエリはそれぞれ異なります。以下では、これら 2 種類のクロスデータベース クエリについて詳しく紹介します。

1. 同じサービスのデータベース間クエリ

同じサービスのデータベース間クエリでは、関連付けられたクエリを実行するときにのみデータ名を含める必要があります。SQL は次のように記述されます: SELECT * FROM database1.table1 x JOIN database2.table2 y ON x.field1=y.field2; たとえば、次のようになります。

2. 異なるサービスのデータベース間クエリ

異なるサービスのデータベース間クエリは、データ名を追加することによって直接関連付けることはできません。ここでは、MySQL データベースのフェデレーション エンジンが必要です。具体的なプロセスは以下のとおりです。

要件: 必要なデータを照会するには、サービス A のデータベース X のテーブル A をサービス B のデータベース Y のテーブル B に関連付ける必要があります。

1. まず、次に示すように、show engines コマンドを使用して、MySQL データベースに FEDERATED エンジンがインストールされているかどうかを確認します。

上図に示すように、MySQL には FEDERATED エンジンがインストールされていますが、サポートが No になっており、有効になっていません。my.cnf ファイルの末尾に FEDERATED の行を追加し、MySQL を再起動します。 FEDERATED エンジンが見つからない場合は、インストールする必要があります。

2. 次のステートメントを使用して、サービス A のデータベース X にテーブル B を作成します。CREATE TABLE table_name (……) ENGINE=FEDERATED CONNECTION='mysql://[username]:[password]@[localtion]:[port]/[db-name]/[table-name]'

注: FEDERATED エンジンによって作成されたテーブルにはローカル テーブル定義ファイルのみがあり、データ ファイルはリモート データベースに存在します。このエンジンは、リモート データ アクセス機能を実現できます。つまり、このテーブル作成方法では、サービス A のデータベース X にテーブル構造ファイル (つまり、サービス B のデータベース Y にテーブル B のテーブル構造ファイル) が作成されます。テーブル インデックス、データ、その他のファイルもサービス B のデータベース Y にあり、簡単に関連付けるためのショートカットに相当します。

3. サービス A のデータベース X で、テーブル A をテーブル B に直接関連付けて、必要なデータを照会します。

このアプローチについては、いくつか注意すべき点があります。

1) このデータベース間クエリ方法はトランザクションをサポートしていないため、トランザクションを使用しないことをお勧めします。

2) テーブル構造を変更することはできません。

3) MySQL はこのデータベース間クエリ方式を使用します。現在、リモート データベースは MySQL のみをサポートしており、他のデータベースはサポートされていません。

4) テーブル構造は、ターゲット データベース テーブルとまったく同じである必要があります。

要約する

これで、MySQL のクロスデータベース クエリに関するこの記事は終了です。MySQL のクロスデータベース クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL におけるデータベース間関連クエリメソッド
  • MySQL リモートデータベース間結合クエリの例

<<:  Linux でのマルチスレッドプログラミング例の分析

>>:  シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)

推薦する

Vue サーバーに js 構成ファイルをインポートする方法

目次背景成し遂げるvue-cli2.0での設定方法の補足要約する背景プロジェクトにはローカル構成ファ...

画像とテキストでHTTPヘッダーのあらゆる側面を理解する

HTTPヘッダーとはHTTP は「Hypertext Transfer Protocol」の略です。...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

CSSをインポートする方法は何ですか?linkと@importの違いは何ですか?選択方法

Taobao のウェブページはインポートを使用していますが、多くのウェブサイトはリンクを使用していま...

css3 flexレイアウト justify-content:space-between 最後の行は左揃えになります

justify-content:space-betweenレイアウトを使用する場合、要素の最後の行に...

Linux ハードウェア構成コマンドの例

ハードウェア ビュー コマンドシステム # uname -a # カーネル/オペレーティング システ...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

CentOS8.1 で Gitlab サーバーを構築するための詳細なチュートリアル

Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...

JavaScript 即時実行関数の使用状況分析

一般的に、関数は実行する前に呼び出す必要があることはご存じのとおりです。以下に示すように、関数を定義...

Linux リモート開発に vs2019 を使用する方法

通常、Linux プログラムを開発する場合、次の 2 つのオプションがあります。 Linux上で直接...

Win2008 サーバー セキュリティ チェック手順ガイド (日常のメンテナンス手順)

ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...

mysql: [エラー] 不明なオプション '--skip-grant-tables'

MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...

MySQL データ型における DECIMAL の使用法の詳細な説明

MySQL データ型における DECIMAL の使用法の詳細な説明MySQL のデータ型には、INT...