Php 计数与存储职位数量

Php 计数与存储职位数量,php,database,performance,Php,Database,Performance,所以这是一个更普遍的问题。这是交易 因此,我制作了一个web应用程序,它需要知道用户为奖励系统发布了多少帖子。帖子越多,你得到的奖励就越多 问题是,我不知道什么是更好的解决方案 一种解决方案是将帖子的数量存储在数据库中,然后只检索我所倾向的内容,因为这似乎会减少对数据库的访问 另一个选择是动态统计帖子数量,这很容易做到。然而,这意味着每次刷新页面时,我都必须重新计算数据。当然,你可以聪明一点,让它只在新帖子被添加时才起作用,但这需要更多的工作 现在我对这两种解决方案都没有问题。事实上,我以前已经

所以这是一个更普遍的问题。这是交易

因此,我制作了一个web应用程序,它需要知道用户为奖励系统发布了多少帖子。帖子越多,你得到的奖励就越多

问题是,我不知道什么是更好的解决方案

  • 一种解决方案是将帖子的数量存储在数据库中,然后只检索我所倾向的内容,因为这似乎会减少对数据库的访问

  • 另一个选择是动态统计帖子数量,这很容易做到。然而,这意味着每次刷新页面时,我都必须重新计算数据。当然,你可以聪明一点,让它只在新帖子被添加时才起作用,但这需要更多的工作


  • 现在我对这两种解决方案都没有问题。事实上,我以前已经实现了这两种解决方案,但是我想知道是否有人可以告诉我哪种更好,或者他们是否有其他解决方案

    我想说的是,与计算所有帖子相比,在用户上存储帖子数量并在每次发布时增加帖子数量会对数据库造成更少的压力,并且更新和查询所需的加载时间也会更少……

    这是一个非常主观的问题。一般来说,每次统计职位的时间会更长,但对于少量职位来说,实际情况可能更糟。我的建议是对你的申请进行简介。在数据库中加载10、100、500、1000篇文章,然后尝试每种方法。然后从那里开始。我相信这里会涉及缓存。还要研究APC缓存,您可以使用它来存储您拥有的帖子数量,并在稍后从PHP中检索它

    我会选择您的第一个选项,并根据您已经给出的原因存储帖子数量,以及更多内容:

    如果在将来的某个时间点,您打算清理帖子数据库并清除旧帖子,那么您的用户不会失去当前的数量。此外,你还可以灵活地提高奖励制度,以后可能会给“更好”的帖子打分,而给普通帖子的分数会更少。您还可以手动调整点数据,而无需搜索他们的帖子


    此外,你可能不知道你的董事会系统会有多成功。也许在将来的某个时候,计算动态值可能会花费太长时间。

    在不太了解您的系统的情况下,我认为结合这两个选项的解决方案可能是值得尝试的。考虑创建一个CRON作业,生成这些计数并将它们存储在一个表中。然后,在查找post计数时,您将参考该表。您不会立即获得最新的结果,但您可能不需要这样做

    谢谢你的建议。。。我会试着尝试一下。。。