1

我正在处理文章页面。我们可以对每篇文章进行投票。我想在单独的页面上显示所有文章和高于平均水平的投票文章。我目前的情况是这样的:

//For get all articles
GET ALL RECORDS FROM ARTICLES TABLE

//For above average articles
GET ALL RECORDS WITH VOTE ABOVE
    GET AVERAGE VOTE VALUE FROM ARTICLES TABLE
FROM ARTICLES TABLE

我觉得这非常低效。有两个事件会改变平均投票:

  • 有人对一篇文章进行了投票
  • 有人写了一篇文章

有什么方法可以跟踪平均投票值而无需在每个请求上查询数据库?我想我必须保存发送了多少票以及写了多少文章的状态。我应该在文件中写这两个变量,这安全吗?

4

1 回答 1

1

只需按预期使用您的数据库,它就与您将获得的一样高效。如果您想减少数据库流量而不是使用缓存(选择一种 PHP 缓存技术:将输出缓存到文件中与操作码缓存),请不要重新设计可行的东西并增加不必要的复杂性。

PHP 没有在请求之间持续存在的静态变量,这使得问题的明显/简单解决方案(您实际上没有问题,但您认为效率低下)是不可能的。将变量序列化到文件中并且每次请求都必须读取该文件不是可行的方法,文件系统 IO 是效率最低的构造。

于 2013-02-01T13:24:21.917 回答