如何在保存到数据库之前合并数据?

How to consolidate data before saving to database?

我有进程从几台机器上检索 CPU、内存、磁盘使用情况,并将数据存储到 MySQL 数据库中。我想在折线图中绘制它们,例如 CPU 使用情况与日期或内存使用情况与日期。

几个月后,我的数据库中有数百万条数据。在选择一段时间内的数据做图表时,花费了大量的时间。 (已应用数据库规范化。)

在保存到数据库之前,是否有任何已知的统计方法可以将数据合并到分钟或小时?

或者我应该在网上搜索什么关键字来整合这些监测数据?

谢谢。

最好有完整的数据用于存储和合并数据用于构建图形等。您可以使用触发器、cron 作业、物化视图和其他类型的脚本来创建一组单独的合并数据。

另一种解决方案是创建临时的未合并数据集,然后将其压缩到主数据中所需的内容 table。

关于统计方法 - 您应该运用常识。有时您只需要 AVG 值,有时需要 MAX 或 MIN(我认为您希望看到 MAX CPU 使用情况、MIN 磁盘 space 剩余、MAX RAM 使用情况等)。