0

ユーザーのようなものを保存します。検索履歴、投稿の閲覧履歴、保存された投稿など... アイデアが得られます。

たとえば、ユーザーの保存された投稿の場合、ユーザーは生涯を通じて約 500 から 2,000 を保持し、数千人のユーザーを使用すると、これが非常に迅速に加算されることがわかります。それを示すための最良の方法は?

ユーザーID(約2,000)に一致するすべての保存された投稿のテーブルを照会するSurleyは、クレイジーです(従来の方法(user、postid)で保存すると)!

すべてのユーザーが保存した投稿 ID を大きな配列に保持するという考えがあったため、ユーザーごとに 2,000 行 (1 つのセルに格納される) ではなく 1 行になります。これをしてはいけない理由はありますか?あなたが知っている最も効率的な方法は何ですか? ああ、もしあなたがこれがどのデータ型であるべきか同意するなら、BLOB ですか?

補足質問 - データベースのサイズが 1000 万から 1 億行を超えると、ほとんどの人はどのソリューションに移行しますか? (ハードウェアはさておき)

4

1 に答える 1

0

提案どおりにインデックスを追加します。1 億行の解決策として考えられるのは、データベース シャーディングと呼ばれる手法です。この手法では、たとえば ID 範囲に従って複数のデータベース インスタンス (サーバー) に同じテーブルを効果的にサイロ化します。特定のユーザーの投稿は、多数の「シャード」の 1 つに保存されます。

http://en.wikipedia.org/wiki/Shard_(database_architecture )

于 2012-05-05T00:42:15.430 に答える