将列合并为 1 列是否有助于优化大表?

tac*_*rry 3 mysql optimization

我有 user、items 和 user_items 表,并且像往常一样用户有很多项目。表包含: 用户:~50K 项目:~3.5M 用户项目:~5M

我正在使用 MySQL,我的大部分查询都在选择用户的项目。所以我想知道将数据保存在 UserItems 表上是否有帮助,如下所示,

user_id item_ids 1 1,22,23,45,66...

然后在获得ids后,简单地解析得到item ids。任何建议/经验?

JNK*_*JNK 9

这是一个坏主意。

将多个数据元素放入单个字段总是会导致头痛。

创建一个新表来存储这些数据会更好,例如:

表用户项

  • UserID 整数
  • ItemId 整数

然后每个用户每个项目一行。您可以根据需要查询并更新它,没有任何问题。

考虑在您提议的结构中添加一个额外的项目 - 这将是一个挑战,因为您需要将另一个空格和另一个 id 连接到现有字符串的末尾。

检查该结构中的单个项目也很麻烦,因为您需要对每条记录进行字符串搜索。