先日、Twitter のようなアプリは何百万人ものユーザーと取引していると考えていました。データベース内の最大ユーザー数が、データベース内の最大ユーザー数から 1 を引いた数 (彼自身) をフォローできる「フォロー」機能がどのように機能するかを考えていました。
これが多対多の双方向マッピングである場合、何十億ものレコードを持つ可能性のある関係テーブルが作成されます。また、ORM はどのようにしてそのようなレコードを取得できるのでしょうか? たとえば、ユーザー A が 20,000 人のユーザーをフォローしている場合、ORM はその 1 人のユーザーに対して 20,000 レコードをロードしますか、それともページネーション アプローチを使用しますか? 小さなレコードセット (たとえば、10 レコード未満) で JPA / ORM を扱うことはできますが、それを超えると、大きなレコードセットをサポートするソフトウェアを作成する方法に頭が下がります。申し訳ありませんが、この質問は具体的ではありませんが、これに関するアーキテクチャのアイデアを得ようとしています。余暇には、数十億のレコードに対していくつかのテストを実行しますが、最初にコミュニティから何らかの意見を得たいと考えていました.