在我的项目中,我需要为特定的评论计算“喜欢的数量”。
目前我的评论表结构如下:
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上的非唯一索引就足够了)