我有一个用户表。每个用户都可以创建一个或多个电影列表。
所以我稍微搜索了一下,在 Stack Overflow 中找到了一个答案,即创建列表的最佳方法是使用 List_Id
创建列表表和 User_ID
列和一个 ListEntry
表与 List_ID
和 Movie_ID
列。然后我通过运行“SELECT Movie_ID FROM ListEntry WHERE List_ID=x
”检索列表条目
我的问题是这样的。当我的站点增长并且我有超过 1000 个用户时,每个用户有 2-3 个列表,每个列表有 50 部电影,ListEntry 表可能有超过 100.000 个条目。这不会减慢数据库的速度吗?这是大多数网站的工作方式吗?有什么更好的方法吗?
最佳答案
假设您不打算将电影 ID 存储为 int(11) 或可能小于 in(11) 的任何内容 - 我很确定不需要那么多电影 :} - 表格将是“大”的行数,但数据量不大。
MySQL 在定位和排序具有小键长度的值方面非常有效,即您的 Movie_ID 和 User_ID 将是两个小键( int(11) 或类似键),因此它们的 JOIN 也将很小并且完成得相当快。
无论如何,我不会担心这个,我有超过 10^8 (100,000,000) 条记录的表,如果它们被正确索引并且有好的键,MySQL 处理它没有困难。
关于MySQL 数组/项目列表和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402931/