【问题标题】:DIfference between counting records and counter variable in database数据库中计数记录和计数器变量之间的差异
【发布时间】:2013-10-30 13:56:21
【问题描述】:

如果我有一个user 表和一个post 表,我想统计一个用户今天发了多少帖子,我可以想到两种方法。

首先是发送一个 SQL 查询来计算今天创建了多少属于userpost 记录。

第二个是有一个count 表,它有三列:user_idnum_postsdate,这样当用户发帖时,如果datenum_posts 就会递增是今天,或者简单地设置为 1,当我们需要统计帖子时,我们简单地检索 num_posts 如果日期是今天,或者说 0。

在我看来这两种方法都很实用,但我不是数据库专家,对数据库在后端的工作方式没有太多了解,所以我不确定该采取哪条路线(尽管似乎大多数人都已实现第一个?)。谁能给我一些想法?

【问题讨论】:

    标签: sql database performance rdbms redundancy


    【解决方案1】:

    第二种选择更加多余,除非您对第一种有性能问题,否则我不会推荐它。 (冗余会导致不一致,这在 rdbms 世界中很糟糕。)

    【讨论】:

      【解决方案2】:

      如果您系统中的用户和帖子数量不是太多,第一个应该没问题。但是如果用户和帖子太多,您可能需要考虑第二个选项,因为它会更快。缺点是需要更多空间来存储数据。

      【讨论】:

        【解决方案3】:

        为帖子数量设置一个单独的表格将是多余的。您可以通过查询此表或查询 post 表来获得相同的信息。如果出于性能原因不需要它,请避免这种情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-02-10
          • 1970-01-01
          • 2012-09-29
          • 2011-02-10
          • 2019-04-26
          • 2023-04-09
          • 1970-01-01
          相关资源
          最近更新 更多