在我的项目中,我需要为特定的评论计算“喜欢的数量”。
目前我的评论表结构如下:

id    user_id   comment_details
1     10        Test1
2     5         Test2
3     7         Test3
4     8         Test4
5     3         Test5

我还有一个表“comment_likes_tbl”,结构如下:
 id    comment_id   user_id
  1       1         1
  2       2         5
  3       2         7
  4       1         3
  5       3         5

以上是样本数据。
问题:
在我的直播服务器上大约有5万条记录。我把上面两个表连在一起,计算出你喜欢的评论的数量。
我要知道没事吧?
或者我应该在comment-tbl表中再增加一个字段来记录喜欢的数量,每次喜欢都增加1,并将其插入comment-likes-tbl。。。。?
它有没有帮助我。。。?
提前谢谢。。。。。

最佳答案

你可以采取一些不同的方法
正如您现在所做的,运行一个JOIN查询来返回注释的整理结果以及每个注释有多少“like”
随着时间的推移,你可能会发现这是一个性能消耗。相反,您只需在每个注释字段上附加一个递增的计数器。但您可能会发现,保留您的*comment_likes_tbl*表也很有用,因为这将是谁喜欢什么以及何时喜欢的永久记录(否则,您只需要一个单独的数字,而不附加额外的元数据)
您还可能有一个解决方案,只需将用户的喜好存储在comment_like s_tbl中,然后cron任务将按照预先确定的计划运行,自动更新所有“like”计数。更进一步说,在站点更繁忙的情况下,这可能有助于平衡性能,即使它确实意味着“like”计数稍微落后于实际计数。
(除此之外,您还可以实现缓存解决方案等,以存储附加到评论的类似值的临时记录,而且MySQL还提供了有用的缓存技术,您可以利用这些技术)
但是您现在所做的是绝对正确的,尽管您仍然应该确保正确设置了索引,否则您会更快地注意到性能下降。(注释id上的非唯一索引就足够了)

10-04 15:51