0

私はマイクロブログWebサービスを行います(学校用なので、新しいアイデアがないからといって私を非難しないでください)。DBが過負荷になることが多いのではないかと心配しています(ユーザーは他のユーザーをフォローしたり、タグを付けたりできるので、SELECT重くなると思います-確認してください)すべての観測タグとユーザーを含む 20 個の最新メッセージ)。

私の考えは、別のテーブルを作成し、そこに statusID と userID (誰がメッセージを受け取るべきか) だけを保存することです。その危険性は、一部のタグまたはユーザーに多くのフォロワーがいる場合、そのステータス ID を持つ多くのレコードが存在することです。それで、それは良い考えですか?それとも、M2M 関係を使用したほうがよいのでしょうか。(1 つのステータス -> 複数の受信者)

4

3 に答える 3

3

ほとんどのデータベースは、大規模なレコード セットを簡単に処理できると思います。それをプリフォームにする責任は、インデックスを適切に設定した設計にあります。適切なインデックスを作成すると、選択句は非常にうまく機能するはずです。

于 2009-10-31T18:36:31.503 に答える
1

ユーザーとメッセージテーブルの間に m2m 関係を持つテーブルであるユーザーテーブルを使用します。

次に、ユーザーがフォローしているすべてのユーザーを検索するために 1 つの選択を実行してから、関心のあるすべてのメッセージを取得するために 2 番目の選択を実行できます (必要に応じて結果を並べ替えて制限します)。これをタグ付けに拡張するのは非常に簡単です。

この設計は、適切な列にインデックスを付けている限り、多数のユーザーとメッセージに適しています。大規模になった場合は、ユーザー テーブルとメッセージ テーブルを別のサーバーで実行するか、読み取り専用の複製を作成することもできます。私は今のところそれについて心配することさえありません-あなたは巨大である必要があります.

于 2009-10-31T18:37:50.757 に答える