MySQL 数组/项目列表和性能

标签 mysql sql database

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

所以我稍微搜索了一下,在 Stack Overflow 中找到了一个答案,即创建列表的最佳方法是使用 List_Id 创建列表表和 User_ID列和一个 ListEntry表与 List_IDMovie_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/

相关文章:

php - 不支持 Yii FULLTEXT,但绝对支持

mysql - 合并具有相同 id 的多个 mysql 行

mysql - 另一列中下一个最接近的日期时间

php - MySQL:在外键链接的表中插入记录

php - 在MySQL中,我可以在分配索引时在一张表中看到2个id

php - PDO 和 Microsoft SQL : Must declare the table variable "@P1"

mysql - 删除 MySQL 中的多行

sql - 如何批量插入数据到两个SQL表

sql - 启用此多读取器解决方案的适当隔离级别是多少?

mysql - 使用连接更新表