1

我有一个用户表。每个用户都可以创建一个或多个电影列表。

所以我搜索了一下,在 Stack Overflow 中找到了一个答案,即创建列表的最佳方法是创建一个带有和列的列表表和一个带有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

100,000 个条目?MySQL 甚至不会感觉到它——你也不会。当你有超过1000万的时候回来。

于 2013-07-01T11:05:53.023 回答
1

数据库旨在处理大量数据。通过适当的索引,数据库可以在一个表中保存数十亿条记录。

于 2013-07-01T11:06:19.490 回答
1

假设您不会将电影的 ID 存储为除 int(11) 或可能小于 in(11) 之外的任何内容 - 我很确定不需要那么多电影 :} - 表格将在行数,但数据量不大。

MySQL 在定位和排序具有小键长度的值方面非常有效,即您的 Movie_ID 和 User_ID 将是两个小键( int(11) 或类似的),因此它们的 JOIN 也将很小并且完成得相当快。

无论如何,我不会担心这一点,我有超过 10^8 (100,000,000) 条记录的表,如果它们被正确索引并且具有良好的键,MySQL 处理它没有困难。

于 2013-07-01T11:07:42.510 回答
1

如果条目索引良好,那么表中的这些行数对于您的 MySql Server 不会有问题。可以在此处找到有关 MySql 性能的一些不错的提示。这是一个德国网站,有两个(英文)关于 MySql 性能的演示文稿。

于 2013-07-01T11:12:36.010 回答
0

您可以使用 mongoDB。它是无模式的。您可以在文档中包含列表。(桌子)

于 2013-07-01T11:06:33.937 回答