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)

推薦する

HTTP ヘッダー情報の解釈と分析 (詳細概要)

HTTP ヘッダーの説明1. Accept: Web サーバーに受け入れるメディア タイプを通知しま...

mysqldump を使用した MySql のインポートおよびエクスポート方法の概要

データベースデータをエクスポートします:まずcmdを開いてMySQLのbinフォルダに入ります1. ...

フィールドを結合するSQL関数

最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...

React の 10 個のフックの紹介

目次ReactHook とは何ですか? Reactは現在フックを提供している1. 使用状態2.use...

jQueryは検証コード送信のコントロールボタンを無効にする機能を実装します

必要な効果: 確認コードを送信するためにクリックした後、ボタンは無効になり、5 秒後に無効解除されま...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

Vue ページをリフレッシュするために provide と injection を適用する

目次方法1: 関数を直接呼び出す方法2: provide / inject (静的更新) を使用する...

Ubuntu での MySQL へのリモート ログインのインストールと設定に関するチュートリアル

この記事では、MySQLのインストールと設定のリモートログインチュートリアルを参考までに紹介します。...

HTML でのフォームとフォーム送信操作に関する情報のコレクション

ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...

TypeScript 開発のための 6 つの実用的なヒント

目次1. 開発前にエンティティの種類を決定する2. インターフェースをリクエストするときは、使用する...

アカウントとパスワードを記憶する機能を実現するVueの考え方とプロセス

目次実装のアイデアアカウント パスワードを保存する方法は 3 つあります。機能インターフェースアカウ...

デザイン理論: なぜ私たちは間違った場所を見ているのでしょうか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

JavaScript BOM ロケーション オブジェクト + ナビゲーター オブジェクト + 履歴オブジェクト

目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...

MySQLプリコンパイル機能の詳細な説明

この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...

HTML ページ ソース コード レイアウトの概要_Powernode Java Academy

HTML ページ ソース コード レイアウトの概要この紹介では、Google のホームページのソー...