Mysql效率场景

时间:2011-11-27 14:09:45

标签: mysql

我正在使用MySQL为我的用户添加“喜欢”我网站内容(Wordpress)的功能。我已经攻击了一个插件,通过创建自己的表然后为内容ID和用户ID为每个表添加记录来实现此目的。

为每个用户关联的所有喜欢的内容ID添加一个列到用户表是否更有效,并为每个内容表添加一个列,以获取喜欢每个内容的每个用户ID?我会根据我是否显示用户收藏夹列表或者一段内容的喜欢列表来进行不同的查询。

我是MySQL的新手,所以我们非常感谢任何建议:)

1 个答案:

答案 0 :(得分:3)

  

为每个用户关联的所有喜欢的内容ID添加一个列到用户表,并为每个内容表添加一个列,以获取每个内容的每个用户ID会更高效吗?

可能不会,
你可以有一个帖子有很多用户,如, 或者用户喜欢很多帖子,
你可能会很快超过色谱柱长度

通常的做法是使用单独的表来存储关系: -

user_id, post_id, add_date

构建两个索引(user_id,add_date)和(post_id,add_date)。
用简单的索引,
你可以通过add_date desc轻松获得喜欢用户订单的帖子列表,
通过add_date desc

获取用户喜欢的订单列表

如果你想列出最喜欢的帖子,那么可以考虑(post_id,user_id)上的索引