构建仪表板的多个 mysql 查询
Multiple mysql queries for building dashboard
我正在开发一个 PHP 仪表板,其中包含来自许多不同 MySql table 的统计信息。需要许多累积值和其他总计来构建图表等。有些查询可以非常简单,有些查询可以同时加入和比较许多 table。
为了正确地做到这一点,我正在考虑 3 种方法;
1) 创建一个主控 table,它在每次前端(网站)和后端 (CRM) 交互后不断更新,并且仅包含用于不同目的的总计。因此,使用用于构建主仪表板的简单 select 语句即可轻松访问数据。
2) 每次生成仪表板时使用许多 and/or 复杂查询。这将花费更少的开发时间但更多的加载时间。也许有更好的方法来管理每个查询的顺序和执行。
3) 创建 cron 作业以在后台更新总数。这是我最不喜欢的方法,因为多种原因感觉它已经过时了。
有人可以给我建议并解释从长远来看最好的方法是什么吗?
提前致谢。
弗雷德
1st 没有 "correct approach",但只有一个能满足您的需求
在满足您的需求时,必须考虑两件事:
- 您的业务需求(实时、每日更新等)
- 代码维护的可扩展性
根据你的情况,我会合并这些选项。
首先,我会创建一个带有专用数据库的专用数据库,这有利于性能和历史数据保存(如果您采用第二种方法,这可能会改变)
在这种情况下,是在线更新仪表板还是通过 cron 作业更新仪表板的问题:非常取决于业务需求。我认为 cron 工作更好
首先,in 是可扩展的——你可以在未来放弃它,只更新仪表板……
第二,您可以在 "slow hours" 期间将其设置为 运行 以防止生产服务器过载。不同的 cron 作业可以以不同的频率等更新不同的表。
这当然是我的看法。希望对您有所帮助
我正在开发一个 PHP 仪表板,其中包含来自许多不同 MySql table 的统计信息。需要许多累积值和其他总计来构建图表等。有些查询可以非常简单,有些查询可以同时加入和比较许多 table。
为了正确地做到这一点,我正在考虑 3 种方法;
1) 创建一个主控 table,它在每次前端(网站)和后端 (CRM) 交互后不断更新,并且仅包含用于不同目的的总计。因此,使用用于构建主仪表板的简单 select 语句即可轻松访问数据。
2) 每次生成仪表板时使用许多 and/or 复杂查询。这将花费更少的开发时间但更多的加载时间。也许有更好的方法来管理每个查询的顺序和执行。
3) 创建 cron 作业以在后台更新总数。这是我最不喜欢的方法,因为多种原因感觉它已经过时了。
有人可以给我建议并解释从长远来看最好的方法是什么吗?
提前致谢。
弗雷德
1st 没有 "correct approach",但只有一个能满足您的需求 在满足您的需求时,必须考虑两件事:
- 您的业务需求(实时、每日更新等)
- 代码维护的可扩展性
根据你的情况,我会合并这些选项。 首先,我会创建一个带有专用数据库的专用数据库,这有利于性能和历史数据保存(如果您采用第二种方法,这可能会改变)
在这种情况下,是在线更新仪表板还是通过 cron 作业更新仪表板的问题:非常取决于业务需求。我认为 cron 工作更好 首先,in 是可扩展的——你可以在未来放弃它,只更新仪表板…… 第二,您可以在 "slow hours" 期间将其设置为 运行 以防止生产服务器过载。不同的 cron 作业可以以不同的频率等更新不同的表。
这当然是我的看法。希望对您有所帮助