1

ユーザーテーブルがあります。すべてのユーザーは、1 つまたは複数の映画のリストを作成できます。

そこで、少し検索したところ、スタック オーバーフローで、リストを作成する最善の方法は、列と列を含むリスト テーブルList_IdUser_ID列と列を含むListEntryテーブルList_IDを作成することであるという回答が見つかりました。次に、「 」Movie_IDを実行してリスト エントリを取得します。SELECT Movie_ID FROM ListEntry WHERE List_ID=x

私の質問はこれです。サイトが拡大し、1000 人を超えるユーザーがいて、それぞれに 2 ~ 3 個のリストがあり、すべてのリストに 50 本の映画がある場合、ListEntry テーブルには 100.000 を超えるエントリが含まれる場合があります。それはデータベースを遅くしませんか?これはほとんどのサイトが機能する方法ですか? これを行うより良い方法はありますか?

4

5 に答える 5

1

ムービーの ID を int(11) 以外、またはおそらく in(11) 未満として保存しないと仮定すると、それほど多くのムービーは必要ないと確信しています :} - テーブルは int(11) で「大きく」なります行の量ですが、データ量は多くありません。

MySQL は、キーの長さが短い値の検索とソートに非常に効率的です。つまり、Movie_ID と User_ID は 2 つの小さなキー ( int(11) など) になるため、それらの JOIN も小さくなり、かなり迅速に実行されます。

とにかく、私はこれについて心配する必要はありません.10^8 (100,000,000) を超えるレコードを持つテーブルがあり、それらが適切にインデックス化され、適切なキーを持っている場合、MySQL はそれを処理するのに問題はありません.

于 2013-07-01T11:07:42.510 に答える
1

データベースは、大量のデータを処理するように設計されています。適切なインデックスを作成すると、DB はテーブルに数十億のレコードを保持できます。

于 2013-07-01T11:06:19.490 に答える
0

mongoDB を使用できます。スキーマレスです。ドキュメント内にリストを含めることができます。(テーブル)

于 2013-07-01T11:06:33.937 に答える