マイクロブログのスタートアップのためのデータベース
-
11-09-2019 - |
質問
私は(学校のために、その新しいアイデアの欠如のために私を爆破していない)マイクロブログWebサービスを行いますと、私はDBは、多くの場合、(ユーザーが他のユーザーに以下のか、そうであっても、私はSELECT
がすることsuppouseタグを付けることができ、オーバーロードすることができることを心配します重いこと - すべての観測のタグやユーザー)が含まれて20件の最新のメッセージを確認してください。
私の考えでは(メッセージを拾う必要があります誰が)別のテーブルを作成し、それにのみstatusIDとユーザーIDを格納しています。その危険は、いくつかのタグやユーザーが多くのフォロワーを持っている場合、そのステータスIDを持つレコードがたくさんあるでしょう、です。だから、それは良いアイデアですか?それとも、より良いは、M2Mの関係を使用していますか? (1つのステータス - >多くの受信機)
解決
私はほとんどのデータベースを簡単に大規模なレコードセットを扱うことができると思います。責任は、それがプリフォーム適切にインデックスを設定すると、デザインである必要があります。あなたが右のインデックスを作成する場合はSELECT句は本当によく実行する必要があります。
他のヒント
私は、ユーザーとのメッセージのテーブルの間M2Mの関係を持っている、のユーザーのテーブルとテーブルに行くと思います。
あなたは、ユーザーがフォローしているユーザーのすべてを見つけることが選択いずれかを行うことができ、その後、2番目のはは(ソートし、必要に応じて結果を制限する)興味のあるすべてのメッセージを見るには選択します。タグにこれを拡張することは非常に単純である必要があります。
このデザインは、限り、あなたのインデックス右の列など、ユーザーと大量のメッセージのために問題ないはずです。あなたが大規模になったなら、あなたはまた、別のサーバーにユーザーテーブルとメッセージテーブルを実行できるかだけ複製読みました。私は一瞬でもその心配はない - あなたは巨大であることを必要があると思います。
。Collabinate( http://www.collabinate.com に)、マイクロブログのサービスベースのエンジンを実装する場合共有アクティビティストリームは、Iは、グラフデータベースを使用します。人々が記事を作成し、他の人に従っているという事実は、グラフ構造に向いています。右の関係とアルゴリズムでは、これは非常に効率的でパフォーマンスの解決策になることができます。