使用PHP/MySQL显示某些统计信息的最有效方法

使用PHP/MySQL显示某些统计信息的最有效方法,php,mysql,cron,scheduled-tasks,Php,Mysql,Cron,Scheduled Tasks,我需要在我们网站的首页上显示一些基本的统计数据,比如博客数量、会员人数和一些计数——所有这些都是基本的查询 我更愿意找到一个方法来运行这些查询,比如说每30分钟运行一次并存储输出,但我不确定最好的方法,我也不想使用cron。基本上,我不想每天只为了显示这些结果而进行数千次查询 对于这类函数的最佳方法有什么想法 提前感谢不幸的是,cron是更好、更可靠的解决方案 Cron是类Unix计算机操作系统中基于时间的作业调度器。cron这个名字来源于“chronos”,希腊语中“time”的意思。Cron

我需要在我们网站的首页上显示一些基本的统计数据,比如博客数量、会员人数和一些计数——所有这些都是基本的查询

我更愿意找到一个方法来运行这些查询,比如说每30分钟运行一次并存储输出,但我不确定最好的方法,我也不想使用cron。基本上,我不想每天只为了显示这些结果而进行数千次查询

对于这类函数的最佳方法有什么想法


提前感谢

不幸的是,
cron
是更好、更可靠的解决方案

Cron是类Unix计算机操作系统中基于时间的作业调度器。cron这个名字来源于“chronos”,希腊语中“time”的意思。Cron使用户能够安排作业(命令或shell脚本)在特定时间或日期定期运行。它通常用于自动化系统维护或管理,但其通用性意味着它可以用于其他目的,例如连接到Internet和下载电子邮件

如果要将输出存储到磁盘文件中,
您可以随时检查时间是否少于30分钟,

在继续重新运行昂贵的查询之前。

Cron作业是最好的方法,我认为没有其他可行的方法。

您有很多方法可以做到这一点,我认为这不是最好的,您可以将数据存储在表中,并每30分钟显示一次。使用函数
sleep()

我建议你看看wordpress博客系统,特别是BuddyPress插件

不久前我也做了同样的事情,每次有人加载页面时,查询都会执行任务并从数据库中检索信息,我记得这就像

从my_表中选择COUNT(*)

我得到了我的案例中的帖子数量

无论如何,有很多方法。祝你好运


别忘了cron永远是你最好的朋友。

用cron把这类东西存储在某个地方没有什么错。

如果您正在寻找更复杂的缓存方法,我建议阅读或,这两种方法都可以为您的问题提供解决方案。

使用cron是解决问题的最简单方法

不使用cron的一个很好的理由是,即使没有人请求,您也会生成统计数据

根据生成数据所需的时间长度(您可能希望跟踪以前的计数,并在时间戳大于上次运行的情况下添加计数-使用适当的索引!),然后在请求传入且数据看起来过时时触发此操作

请注意,您应该将统计信息保存在数据库中,并考虑如何实现互斥,以避免多个请求试图同时更新缓存


然而,正确的解决方案是每次添加记录时更新统计数据。除非您有非常大的流量,否则开销将是最小的。虽然“从某个表中选择计数(*)将运行得非常快,但如果您不想简单地统计表中的所有行(例如,如果博客和回复保存在同一个表中),则显然会遇到问题。事实上,如果要在相关表上实现stats更新作为触发器,那么就不需要对PHP代码进行任何更改。

谢谢我使用MySQL缓存,这样就可以使用itUPDATE了:我找到的最好方法是将stats存储在缓存中30分钟。当缓存过期时,只需运行查询并再次存储到缓存中30分钟。不需要cron。