点赞状态查询优化

现在有一个点赞记录表、一个评论表。
在查询每个用户的点赞状态时如何优化这个查询方式;
目前使用的是遍历查询点赞记录表来查看每条评论的点赞状态;
各位有什么优化的方案或者好的设计?

阅读 3.7k
3 个回答

遍历没什么问题吧,就两条语句,不会费时太多吧。

//取出评论
SELECT * FROM 评论表 LIMIT 分页
//逻辑处理获取评论id集合ids
...
//取出点赞相关
SELECT * FROM 点赞表 WHERE 评论id IN(评论id集合) AND user_id=用户id
//逻辑遍历处理是否点赞展示
...

如果是关联查询也可以啊,查询出来的点赞id为null的就是没有点赞的评论

SELECT 评论.*,点赞.id FROM 评论表 
LEFT JOIN 点赞表 ON 评论.id=点赞.评论id AND 点赞.user_id=用户id
GROUP BY 评论.id
LIMIT 分页

按理说丢到redis里面,每个评论一个点击用户集合, 评论过了多长时间后取消点赞功能.

新手上路,请多包涵

拆分到redis数据库,用户点赞一个集合,每条评论一个集合。这样能满足查询和每条评论效率,用空间换时间。

当然也可以考虑拆分点赞记录表,按照一定量用户拆分一个表。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题