mysql - 一大列还是许多小行?
问题描述
在新闻提要应用程序中,我们的客户需要存储用户阅读的所有文章的 id。
我们决定为此创建一个表,但从性能的角度来看,以下哪种方法更好:
- 每个用户有一行,有两个字段 a
user_id
和article_ids
,然后每次用户阅读一篇文章时,将 id 附加到 article_ids 文本 - 使用 update 和 concat (我们可能最终在一列中有大量数据)。 - 有很多行,两列,
user_id
然后article_id
,每次用户阅读一篇文章时,将article_id
与user_id
in 一起插入作为新记录(我们最终可能会得到太多行)。
或者如果有更好的方法,任何建议都非常欢迎。
解决方案
使用第二种方法,您可以跟踪客户可能会询问的其他事项。
- 首先,打开/阅读/访问时间。
- 打开/读取/访问的总数。
- 上次打开/阅读/访问时间。
article_id
在这种方法中,如果需要,您可以稍后应用索引。
注意:正如@Arjan 在他的回答中所说,通过适当的索引,现在存在太多行。
推荐阅读
- laravel - 从控制器函数中获取特定值
- javascript - Javascript正则表达式选择没有特殊字符的单词
- javascript - jQuery 没有找到 Django 返回的“span”元素
- artifactory - 使用远程存储库升级 Artifactory 设置
- imagemagick - 无法使用 ImageMagick 限制内存使用量
- javascript - 如何禁用下拉菜单中的选项?
- python-3.x - Python:如何在跳过标题行的同时对 CSV 文件中的列求和
- angular - j潮人。使用管道过滤表
- python - 日志模块中的五个日志级别
- r - Fuzzy merge on multiple variables (all but one with no mispellings)