-1

3 つの MySQL データベースを 1 つのデータベースに結合するにはどうすればよいですか?

同じサーバーに 3 つの個別の Web サイトがあり、各サイトには独自の MySQL データベースがあります。

site1 --> database1、1 テーブル、16 フィールド

site2 --> database2、1 テーブル、16 フィールド

site3 --> database3、1 テーブル、16 フィールド

3 つのデータベースはすべて同一の構造を持ち、各データベースには 16 のフィールドを持つテーブルが 1 つしかありません。3 つのデータベースすべてで、テーブル名は同じ (Post_Data) で、16 のフィールドはすべて同一です。インデックス フィールド (フィールド 11) の名前は Post_Date です。

各テーブルには、1,000,000 を超えるエントリが含まれています。

他の 3 つのデータベース サイトからの結果を表示する検索クエリを実行するための検索サイトとして使用される MySQL データベース (database4、1 テーブル、16 フィールド) を使用して 4 番目の Web サイトを作成中です。この 4 番目の Web サイトでは、現在、3 つのデータベースすべてに個別にクエリを実行し、結果を結合するスクリプトを実行しています。次に、結果から重複を削除します。

これは、3 つのデータベースすべてで検索クエリを実行するには非効率的な方法だと思います。私は、他の 3 つのデータベースから重複を除いたすべての情報を含む 1 つのデータベースのみをクエリすることを好みます。

私の質問は:

database1、database2、および database3 の 3 つのデータベース テーブルすべてを、database4 内の 1 つのテーブルに結合するにはどうすればよいでしょうか? また、データベース 4 は、データベース 1、データベース 2、およびデータベース 3 からのデータで毎時間更新する必要があります。cron を使用して更新を実行できます。

私は基本的に、このタスクを実行するための PHP / MySQL コードを探しています。

3 つのデータベースすべてで重複するエントリがあることに注意してください。つまり、データベース 1、データベース 2、およびデータベース 3 にはすべて同一のエントリが含まれている可能性があるため、3 つのデータベース テーブルすべてをデータベース 4 内の 1 つのテーブルに結合したら、重複するエントリを削除する必要があります。

この 4 番目の Web サイトは基本的に、すべてのサイト訪問者が利用できる検索タイプのサイトになるため、サーバーの負荷を最小限に抑えて高速な検索応答が必要です。私の現在の検索方法 (3 つのデータベースすべてに同時にクエリを実行し、結果を組み合わせる) は、検索クエリごとに 3 つの Web サイトすべてのサーバー負荷に影響します。

懸念:

  1. Database4 には、database1、database2、および database3 からの重複を含めることはできません。

  2. サーバーの負荷を最小限に抑えて、検索サイトの検索応答を高速にする必要があります。

  3. データベース 4 は、データベース 1、データベース 2、およびデータベース 3 からのデータで毎時間更新する必要があります。cron を使用して更新を実行できます。

以前に検索型データベースを作成したことがありません。したがって、database4 に追加の検索インデックス フィールドを組み込む必要がありますか?

4

1 に答える 1