我正在开发一个PHP仪表盘,其中包含来自许多不同的MySql表的统计信息。建筑图表等需要大量的累计和其他总计。一些查询可能非常简单,而另一些查询可以一次加入并比较许多表。
要正确执行此操作,我正在考虑3种方法;
1)创建一个主表,该主表在每次前端(网站)和后端(CRM)交互后都会不断更新,并且仅包含用于不同目的的总计。因此,通过用于构建主仪表板的简单select语句即可轻松访问数据。
2)每次生成仪表板时都要使用许多和/或复杂的查询。这将花费更少的显影时间,但是会花费更多的加载时间。也许有更好的方法来管理每个查询的顺序和执行。
3)创建cron作业以在后台更新总数。这是我最不喜欢的方法,因为由于多种原因而感觉过时。
有人可以建议我,并说明长期来看最好的方法是什么?
先谢谢了。
弗雷德。
答案 0 :(得分:2)
首先,没有“正确方法”,但是只有一种可以满足您的需求 为了满足您的需求,必须考虑两件事:
根据您的情况,我将合并这些选项。 首先,我将创建一个具有专用数据库的专用数据库,这对性能和历史数据都有好处(如果采用第二种方法,它可能会改变)
在这种情况下,是否在线或通过cron作业更新仪表盘的问题:非常取决于业务需求。我觉得做一份更好的工作 首先,in具有可扩展性-您将来可以放弃它,并仅更新仪表板... 第二,您可以安排它在“缓慢的时间”内运行,以防止生产服务器过载。不同的cron作业可以以不同的频率等更新不同的表。
这当然是我的看法。希望对您有帮助