【问题标题】:Best way of getting the number of comments a user has post获取用户发表的评论数量的最佳方法
【发布时间】:2015-06-09 16:11:15
【问题描述】:

我需要显示用户发布的 cmets 数量。我可以考虑两种不同的方法,我想知道哪一种更好。

方法一:每次需要显示cmets个数时,查询cmets表选择user_id为x的所有cmets,统计结果个数。

方法二:在用户表中添加一个新列来存储特定用户发布的 cmets 的数量。每次用户输入新评论时,都会更新此值。这样每次需要显示cmets的个数时,只需要在数据库中查询这个值即可。

我认为第二种方法更有效,但我想知道其他意见。

任何评论将不胜感激。

提前致谢, 索尼娅

【问题讨论】:

  • 您在征求意见,这些意见显然与本网站无关。我们不是来帮你设计系统的。
  • 方法 1 显然是最简单和最健壮的;对索引列的计数应该非常快,如果您将来遇到问题,您可以随时重新考虑。
  • @MarcB 这不是真的。我不是来为他们设计其他人的系统,而是来帮助他们做到这一点。这个问题并不真正属于您(正确地)警惕的“意见”类别。抛开性能问题不谈,一种方法显然比另一种更可取。
  • @Sonia MarcB 并不粗鲁;直截了当(而且您确实表示您会感谢任何评论)

标签: php mysql


【解决方案1】:

这取决于。我想你使用 SQL。如果您有正确的索引(例如SELECT COUNT(1) FROM articles WHERE user_id = ?),计数非常快。如果这会成为瓶颈,我会考虑缓存这些结果。

【讨论】:

    【解决方案2】:

    在规模上,选项 #2 是唯一可行的选项。计数最终可能会出现一些偏差,您可能需要重建统计信息,但与尝试计算与二级索引匹配的行数相比,这成本相对较低。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 2020-05-06
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多