我是PHP的新手,因此这更像是一个概念性问题,甚至可能是关于“最佳实践”的问题。
通常,我会看到从其数据库中提取统计数据的网站。例如,假设它是销售线索网站。它可能在页面顶部有统计信息,如:
新的销售业务昨天:123
本月新销售额达到:556
今年的新销售额:3870
显然,每次显示页面时都不应计算这个,对吧?这可能会对服务器造成很大负担?人们如何缓存此类数据。任何最佳做法?我以为我写了一个CRON工作,每天计算它并插入数据库。你有什么想法?谢谢!
答案 0 :(得分:1)
您可以计算一次,然后将其存储在xcache中。然而,这里似乎没有需要一个cron。查询可以运行一次并将结果存储在xcache中。这里重要的是根据您的用例设置存储值的到期时间。例如。如果您需要存储上述每日统计数据,请将到期时间设置为几小时。如果数据每分钟更新一次,您可以将到期时间设置为几分钟。
像这样。
$newSalesLeadYest;
if(xcache_isset("newSalesLeadYest")){
$newSalesLeadYest = xcache_get("newSalesLeadYest");
} else{
$newSalesLeadYest = runQueryToFetchStat();
//Cache set for X secs
xcache_set("newSalesLeadYest", $newSalesLeadYest, X);
}
答案 1 :(得分:0)
您需要的是提出缓存策略。 有些因素可以帮助您做出决定:
有几种方法可以达到效果。
从您提供的3个示例中,3个简单的计数应该不足以保证复杂的缓存系统。如果您可以粘贴sql查询,我们可以帮助优化它们。
数据听起来每天只会更新一次,因此一个简单的夜间cron“flatten”查询将是一个不错的选择。