我正在撰写文章页面。我们可以对每篇文章进行投票。我想在单独的页面上显示所有文章和高于平均水平的投票文章。我目前的情况是这样的:
//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
我觉得效率很低。有两个事件改变了平均投票:
有没有办法在不查询每个请求数据库的情况下跟踪平均投票价值?我想我必须保存已经发送了多少票的状态以及写了多少篇文章。我应该把这两个vars写在文件中,这样安全吗?
答案 0 :(得分:1)
只需按预期使用您的数据库,它就像您将获得的那样高效。如果你想减少数据库流量而不是使用缓存(Choosing a PHP caching technique: output caching into files vs. opcode caching),不要重新设计一些有效的东西并增加不必要的复杂性。
PHP没有在请求之间持久存在的静态变量,这使得问题的明显/简单解决方案(您实际上没有问题,但您认为效率低下)是不可能的。将变量序列化到文件并且必须在每个请求中读取该文件都是不可取的,文件系统IO是效率最低的构造。