2012-02-03 13 views
0

アナロジーを与える:Twitterのようなシナリオでは、1人から多数への膨大な人数の後に、「多くの」側のエントリが何百万にも及ぶ1対多のタイプの関連付けの戦略

私は

  1. と考えることができ

    いくつかのオプションは、遅延読み込みといくつかのORマッピングツールを使用してください。しかし、あなたが関係の「信者」側にアクセスすると、それはすべてのデータを遅らせることさえ困難です。そうではない適切なオプション。

  2. 1対多の関係を維持しない(またはORマッピングを使用しない)。別の呼び出しで「フォロワー」側を取得し、ページングなどをプログラムで処理します。

  3. オフロード大きなデータをより良い処理が可能な検索スタック(Lucene/Solr)にフェッチする。しかし、これはデータベース更新とインデックス更新の間にいくらかの遅延を導入するでしょう。

あなたのご意見/ご提案と可能なツールライブラリをお知らせください。 StackはJava、MySQLで構成されています。

答えて

1

これらの状況に対応して設計されているため、何百万ものRDBMSが問題になることはありません。

アプリケーションのパフォーマンスを最適化するために正規化するのではなく、非正規化することをお勧めします。これは、特に、非常に高い読み取り統計量と非常に低い書き込み統計量を持つアプリケーションに適しています。

+0

RDBMSが心配です。私はアプリケーション側でこのデータを扱うことにもっと心配しています。 – Santosh

+0

データをフェッチする方法については、クエリの最適化が大いに役立つはずです。一方で、メモリーに数百万のレコードを保持することは、アプリケーション・サーバーにとって大きなパフォーマンス・ヒットになる可能性がありますが、これを最適化することもできます。 (遅延読み込み、ページ付け読み込みなど) –

関連する問題