簡単に言えば、基本的なユーザーの詳細 (ユーザー ID (インデックス)、ユーザー名、パスワード、親ユーザー、ステータス) が 1 つのデータベースに格納され、拡張されたユーザーの詳細 (同じユーザー ID (インデックス)、氏名、住所) が格納されている大規模なデータベースを扱っています。など)別のサーバー上の別のデータベースに保存されます。
特定のユーザーが所有するすべてのユーザーを (基本ユーザー詳細データベースの親ユーザー フィールドを介して) 選択し、フル ネームで (拡張ユーザー詳細フィールドから) 並べ替え、一度に 25 人だけを選択するクエリを実行する必要があります ( 1 人のユーザーに対して数千、場合によっては数万になります)。
私が解決できる限り、考えられる解決策は 3 つあります。
JOIN なし - 1 つのクエリですべてのユーザー ID を取得し、それらの ID に基づいて 2 番目のクエリを実行します。これは問題ありませんが、ユーザー ID の数が非常に多くなりすぎてクエリの最大長を超えたり、ひどく非効率になる可能性がある場合を除きます。
基本的なユーザーの詳細を含むデータベース テーブルを、拡張された詳細を含むサーバーに複製して、JOIN を実行できるようにします。
フェデレーテッド ストレージ エンジン テーブルを使用して #2 と同じ結果を得る
3 が最適なオプションのようですが、パフォーマンスに関する情報はほとんど見つかりませんでした。また、実稼働データベースでこれを使用する際には注意が必要なコメントも 1 つ見つかりました。
何が最良の実装になるかについての提案をいただければ幸いです。
ありがとう!